[Esta é a documentação preliminar e estão sujeitos a alterações.]
A estrutura PRINTDLGEX contém informações que a função PrintDlgEx usa para inicializar o folha de propriedades de impressão . Depois que o usuário fecha a folha de propriedades, o sistema usa essa estrutura para retornar informações sobre seleções do usuário.
typedef struct tagPDEX {
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
HDC hDC;
DWORD Sinalizadores;
DWORD Flags2;
DWORD ExclusionFlags;
DWORD nPageRanges;
DWORD nMaxPageRanges;
LPPRINTPAGERANGE lpPageRanges;
DWORD nMinPage;
DWORD nMaxPage;
DWORD nCopies;
HINSTANCE hInstance;
LPCTSTR lpPrintTemplateName;
LPUNKNOWN lpCallback;
DWORD nPropertyPages;
HPROPSHEETPAGE * lphPropertyPages;
DWORD nStartPage;
DWORD dwResultAction;
} PRINTDLGEX, * LPPRINTDLGEX
Se hDevMode é NULL na entrada, PrintDlgEx aloca memória para a estrutura DEVMODE , inicializa seus membros para indicar a entrada do usuário e retorna um identificador que identifica-lo.
Para obter mais informações sobre o hDevMode e hDevNames Membros, consulte a seção de comentários no final deste tópico.
O hDevNames membro pode ser NULL, nesse maiúscminúsc, PrintDlgEx aloca memória para a estrutura DEVNAMES , inicializa seus membros para indicar o usuário entrada, e retorna um identificador que identifica-lo.
Para obter mais informações sobre o hDevMode e hDevNames Membros, consulte a seção de comentários no final deste tópico.
| PD_ALLPAGES | |
| A bandeira de padrão que indica que o botão de rádio tudo inicialmente é seleccionado. Este sinalizador é usado como um espaço reservado para indicar que não estão especificados os sinalizadores PD_PAGENUMS, PD_SELECTION e PD_CURRENTPAGE. | |
| PD_COLLATE | |
| Se este sinalizador estiver definido, a caixa de verificação Agrupar está marcada. Se este sinalizador é definido quando a função PrintDlgEx retorna, o aplicativo deve simular o agrupamento de várias cópias. Para obter mais informações, consulte a descrição da bandeira PD_USEDEVMODECOPIESANDCOLLATE. |
|
| PD_CURRENTPAGE | |
| Se este sinalizador estiver definido, o botão de opção Página atual é selecionado. Se nenhum dos sinalizadores PD_PAGENUMS, PD_SELECTION ou PD_CURRENTPAGE for definida, o botão de opção todos estiver selecionado. | |
| PD_DISABLEPRINTTOFILE | |
| Desativa a caixa de seleção Imprimir em arquivo. | |
| PD_ENABLEPRINTTEMPLATE | |
| Indica que o hInstance e lpPrintTemplateName Membros especificar uma substituição para o modelo de caixa de diálogo padrão na parte inferior da página Geral . O modelo padrão contém controles semelhantes da caixa de diálogo Imprimir . O sistema usa o modelo especificado para criar uma janela que é um filho da página Geral. | |
| PD_ENABLEPRINTTEMPLATEHANDLE | |
| Indica que o hInstance membro identifica um bloco dados que contém um modelo caixa diálogo pré-carregadas. Este modelo substitui o modelo de caixa de diálogo padrão na parte inferior da página Geral . O sistema usa o modelo especificado para criar uma janela que é um filho da página Geral . O sistema ignora o lpPrintTemplateName membro se este sinalizador for especificado. | |
| PD_EXCLUSIONFLAGS | |
| Indica que o membro ExclusionFlags identifica itens excluídos das páginas de propriedades do controlador de impressora. Se este sinalizador não estiver definido, itens serão excluídos por padrão de páginas de propriedades do controlador de impressora. As exclusões de evitar a duplicação de itens entre a página Geral , as páginas do aplicativo especificado e as páginas de driver de impressora. | |
| PD_HIDEPRINTTOFILE | |
| Oculta a caixa de seleção Imprimir em arquivo. | |
| PD_NOCURRENTPAGE | |
| Desabilita o botão de opção Página atual. | |
| PD_NOPAGENUMS | |
| Desabilita o botão de opção páginas e os controles associados editar. | |
| PD_NOSELECTION | |
| Desabilita o botão de opção de seleção. | |
| PD_NOWARNING | |
| Impede que a mensagem de aviso seja exibida quando ocorre um erro. | |
| PD_PAGENUMS | |
| Se este sinalizador estiver definido, o botão de opção páginas está selecionado. Se nenhum dos sinalizadores PD_PAGENUMS, PD_SELECTION ou PD_CURRENTPAGE for definida, o botão de opção todos estiver selecionado. Se este sinalizador é definido quando a função PrintDlgEx retorna, o membro lpPageRanges indica os intervalos de páginas especificados pelo usuário. |
|
| PD_PRINTTOFILE | |
| Se este sinalizador estiver definido, a caixa de seleção Imprimir em arquivo é selecionada. Se este sinalizador é definido quando PrintDlgEx retorna, o deslocamento indicado pelo membro wOutputOffset da estrutura DEVNAMES contém a Cadeia de caracteres "arquivo:". Quando você chamar o StartDoc função para iniciar a operação de impressão, especificar este "arquivo:" Cadeia de caracteres in a lpszOutput membro do DOCINFO estrutura. Especificar essa Cadeia de caracteres faz com que o subsistema de impressão consultar o usuário para o nome do arquivo de saída. |
|
| PD_RETURNDC | |
| Faz com que PrintDlgEx para retornar um contexto para dispositivo combinando as seleções feitas na folha de propriedade pelo usuário. O contexto de dispositivo é retornado na hDC. | |
| PD_RETURNDEFAULT | |
| Se este sinalizador estiver definido, a função PrintDlgEx não exibe a folha de propriedades. Em vez disso, ele define o hDevNames e hDevMode Membros para alças para DEVMODE de DEVNAMES estruturas que são inicializadas para a impressora padrão de sistema. Ambos hDevNames e hDevMode devem ser NULL ou PrintDlgEx retorna um erro. | |
| PD_RETURNIC | |
| Semelhante para o Sinalizar de PD_RETURNDC, exceto esse sinalizador retorna um contexto de informações ao invés de um contexto de dispositivo. Se nem PD_RETURNDC PD_RETURNIC for especificado, o hDC é indefinida na saída. | |
| PD_SELECTION | |
| Se este sinalizador estiver definido, o botão de opção de seleção estiver selecionado. Se nenhum dos sinalizadores PD_PAGENUMS, PD_SELECTION ou PD_CURRENTPAGE for definida, o botão de opção todos estiver selecionado. |
|
| PD_USEDEVMODECOPIES | |
| Mesmo que PD_USEDEVMODECOPIESANDCOLLATE | |
| PD_USEDEVMODECOPIESANDCOLLATE | |
| Este sinalizador indica se seu aplicativo suporta várias cópias e agrupamento. Defina esse sinalizador na entrada para indicar que seu aplicativo não oferece suporte a várias cópias e agrupamento. Neste caso, o nCopies membro da estrutura PRINTDLGEX sempre retorna 1 e PD_COLLATE nunca é definido na sinalizadores membro. Se este sinalizador não estiver definido, o aplicativo é responsável por imprimir e confronto de várias cópias. Neste caso, o nCopies membro da estrutura PRINTDLGEX indica o número de cópias que o usuário deseja imprimir, e o sinalizador PD_COLLATE in o sinalizadores membro indica se o usuário quer agrupamento. Independentemente de saber se este sinalizador estiver definido, um aplicativo pode determinar a partir de nCopies e PD_COLLATE quantas cópias para processar e se deseja imprimi-las agrupadas. Se este sinalizador estiver definido e o driver de impressora não oferece suporte a várias cópias, o Controlarar de Editar de cópias é desativado. Da mesma forma, se este sinalizador estiver definido e o driver de impressora não oferece suporte a agrupamento, a caixa de verificação Agrupar está desativada. Os membros de dmCopies e dmCollate o DEVMODE estrutura contêm as cópias e agrupar informações usadas pelo driver de impressora. Se este sinalizador estiver definido e o driver de impressora oferece suporte a várias cópias, o membro dmCopies indica o número de cópias solicitadas pelo usuário. Se este sinalizador estiver definido e o driver de impressora oferece suporte a agrupamento, o dmCollate membro da estrutura DEVMODE indica se o usuário quer agrupamento. Se este sinalizador não estiver definido, o membro de dmCopies sempre retorna 1, e o membro de dmCollate é sempre zero. |
|
| PD_EXCL_COPIESANDCOLLATE | |
| Exclui os controles de cópias e Agrupar as páginas de propriedades do driver de impressora em um folha de propriedades de impressão . Esse sinalizador deve sempre ser definido quando o aplicativo usa os controles de cópias e Collate de padrão fornecidos pela parte inferior da página Geral da folha de impressão. | |
Se o sinalizador PD_NOPAGENUMS for especificada, este valor não é válido. Se o sinalizador PD_NOPAGENUMS não for especificado, lpPageRanges deve ser não-NULL.
Quando PrintDlgEx retorna, nCopies contém o real número de cópias que do aplicativo deve imprimir. Esse valor depende se o aplicativo ou o driver de impressora é responsável para imprimir várias cópias. Se o sinalizador PD_USEDEVMODECOPIESANDCOLLATE é definido na sinalizadores membro, nCopies é sempre 1 em retorno, e o driver de impressora é responsável para imprimir várias cópias. Se o sinalizador não estiver definido, o aplicativo é responsável por imprimir o número de exemplares especificado pelo nCopies. Para obter mais informações, consulte a descrição da bandeira PD_USEDEVMODECOPIESANDCOLLATE.
O objeto deve conter a classe de IPrintDialogCallback para receber mensagens para a caixa de diálogo filho na parte inferior da página Geral.
O objeto de retorno de chamada deve também conter o classe de IObjectWithSite para receber um ponteiro para a interface de IPrintDialogServices . As chamadas de função PrintDlgEx Falha de QueryInterface sobre o objeto de retorno de chamada para IID_IPrintDialogCallback e IID_IObjectWithSite determinar quais interfaces são suportados.
Se você não deseja recuperar as informações de retorno de chamada, defina lpCallback como NULL.
| Valor | Significado |
|---|---|
| PD_RESULT_APPLY | O usuário clicou no botão aplicar e depois clicou no botão Cancelar . Isso indica que o usuário quer aplicar as alterações feitas na folha de propriedades, mas não quer imprimir ainda. A estrutura PRINTDLGEX contém as informações especificadas pelo usuário no momento foi clicado no botão aplicar. |
| PD_RESULT_CANCEL | O usuário clicou no botão Cancelar . As informações na estrutura PRINTDLGEX permanece inalteradas. |
| PD_RESULT_PRINT | O usuário clicou no botão Imprimir . A estrutura PRINTDLGEX contém as informações especificadas pelo usuário. |
Quando você chamar a função PrintDlgEx , certifique-se de que o wDeviceOffset membro da estrutura DEVNAMES é idêntica ao dmDeviceName membro do a estrutura de DEVMODE . Se esses membros não especificar a mesma impressora, PrintDlgEx Inicializa a folha usando a impressora especificada pelo membro wDeviceOffset.
Normalmente, se hDevMode e hDevNames são NULL, PrintDlgEx Inicializa a folha usando a impressora padrão atual. No entanto, se o sinalizador PD_RETURNDEFAULT é definido e hDevMode e hDevNames são NULL, PrintDlgEx usa o hDevNames e hDevMode Membros para retornar informações sobre a impressora padrão atual sem exibir a folha de propriedades.
Durante a execução de PrintDlgEx, o DEVMODE e estruturas DEVNAMES que você especificou na estrutura PRINTDLGEX não podem sempre conter dados atuais. Por esse motivo, páginas de propriedades específicas do aplicativo bem como rotinas de IPrintDialogCallback para a página inicial devem usar a interface IPrintDialogServices para recuperar informações sobre o estado da impressora atual.
nbsp; Windows &NT: requer versão 5.0 ou posterior.
Windows:Sem suporte.
Windows CE:Sem suporte.
Cabeçalho:Declaradas no commdlg.h.
Biblioteca de importação:Use comdlg32.lib.
Unicode:Definidos como estruturas ANSI e Unicode.
Common Dialog Box Library Overview, Common Dialog Box Structures, CreateDC, CreateIC, CreatePropertySheetPage, DEVMODE, DEVNAMES, IObjectWithSite, IPrintDialogCallback, IPrintDialogServices, PrintDlgEx