PRINTDLGEX

[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 

Membros

lStructSize
Especifica o tamanho da estrutura, em bytes.
hwndOwner
Identificador para a janela que possui a folha de propriedades. Este membro deve ser um válido identificador janela; Ele não pode ser NULL.
hDevMode
Identificador para um objeto memória global móvel que contém um estrutura de DEVMODE . Se hDevMode não for nulo na entrada, você deve alocar um Bloquear de memória móvel para o DEVMODE estrutura e inicializar seus membros. A função PrintDlgEx usa a entrada dadospara inicializar os controles na folha de propriedades. Quando PrintDlgEx retorna, os membros DEVMODE indicam a entrada do usuário.

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.

hDevNames
Identificador para um objeto memória global móvel que contém uma estrutura DEVNAMES . Se hDevNames não for nulo na entrada, você deve alocar um Bloquear de memória móvel para a estrutura DEVNAMES e inicializar seus membros. A função PrintDlgEx usa a entrada dadospara inicializar os controles na folha de propriedades. Quando PrintDlgEx retorna, os membros DEVNAMES contêm informações para a impressora escolhida pelo usuário. Você pode usar essas informações para criar um contexto de dispositivo ou um contexto de informações.

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.

hDC
Identificador para um contexto de dispositivo ou um contexto de informações, dependendo de se a sinalizadores membro especifica o Sinalizar PD_RETURNDC ou PC_RETURNIC. Se nenhum sinalizador for especificado, o valor deste membro é indefinido. Se ambos os sinalizadores forem especificados, PD_RETURNDC tem prioridade.
Sinalizadores
Um conjunto de bit sinalizadores que você pode usar para inicializar a folha de propriedades de impressão . Quando a função PrintDlgEx retorna, ele define esses sinalizadores para indicar a entrada do usuário. Esse membro pode ser uma combinação dos sinalizadores a seguir.
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.


Flags2
Reservados; deve ser zero.
ExclusionFlags
Um conjunto de sinalizadores bit que pode excluir itens das páginas de propriedades do controlador de impressora na folha de impressão . Esse valor é usado somente se o sinalizador PD_EXCLUSIONFLAGS é definido na sinalizadores membro. Sinalizadores de exclusão devem ser usados somente se o item a ser excluído será incluído na página Geral ou em uma página de aplicativo-definidos na folha de impressão . Esse membro pode especificar o seguinte sinalizador.
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.

nPageRanges
Na entrada, defina esse membro como o número inicial de intervalos de páginas especificadas na matriz lpPageRanges . Quando a função PrintDlgEx retorna, nPageRanges indica o número de intervalos de páginas especificadas pelo usuário armazenados na matriz lpPageRanges . Se o sinalizador PD_NOPAGENUMS for especificada, este valor não é válido.
nMaxPageRanges
Especifica o tamanho, nos elementos da matriz, da lpPageRanges reserva. Esse valor indica o número máximo de faixas de páginas que podem ser armazenados na matriz. Se o sinalizador PD_NOPAGENUMS for especificada, este valor não é válido. Se o sinalizador PD_NOPAGENUMS não for especificado, esse valor deve ser maior que zero.
lpPageRanges
Ponteiro para um buffer que contém uma matriz de PRINTPAGERANGE estruturas. Na entrada, a matriz contém os intervalos de página inicial para exibir no Controlarar de editar páginas . Quando a função PrintDlgEx retorna, a matriz contém os intervalos de páginas especificados pelo usuário.

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.

nMinPage
Especifica o valor mínimo para os intervalos de páginas especificado no Controlarar de editar páginas . Se o sinalizador PD_NOPAGENUMS for especificada, este valor não é válido.
nMaxPage
Especifica o valor máximo para os intervalos de páginas especificado no Controlarar de editar páginas . Se o sinalizador PD_NOPAGENUMS for especificada, este valor não é válido.
nCopies
Contém o número inicial de cópias para o Controlarar de Editar de cópias se hDevMode é NULL; caso contrário, o membro dmCopies a DEVMODE estrutura contém o valor inicial.

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.

hInstance
Se o sinalizador PD_ENABLEPRINTTEMPLATE é definido na sinalizadores membro, hInstance é o identificador do pedido ou da instância do módulo que contém o modelo caixa diálogo nomeado pela lpPrintTemplateName membro. Se o sinalizador PD_ENABLEPRINTTEMPLATEHANDLE é definido na sinalizadores membro, hInstance é o identificador de um objeto de memória que contém um modelo caixa diálogo. Se nenhum dos sinalizadores de modelo é definido na sinalizadores membro, hInstance deve ser NULL.
lpPrintTemplateName
Ponteiro para uma seqüência de caracteres null-terminated que nomeia um recurso de modelo caixa diálogo no módulo identificado pelo hInstance membro. Este modelo substitui 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 . Esse membro é ignorado a menos que o sinalizador PD_ENABLEPRINTTEMPLATE é definido na sinalizadores membro.
lpCallback
Ponteiro para um objeto de retorno de chamada definido pelo aplicativo.

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.

nPropertyPages
Especifica o número de identificadores de página de propriedade na matriz lphPropertyPages.
lphPropertyPages
Contém uma matriz de identificadores de página de propriedade para adicionar à folha de propriedades de impressão . As páginas de propriedades adicionais siga a página Geral . Uso o CreatePropertySheetPage função para criar essas páginas adicionais. Se nPropertyPages for zero, lphPropertyPages deve ser NULL.
nStartPage
Especifica a página de propriedades é exibida inicialmente. Para exibir a página de Geral , especifique START_PAGE_GENERAL. Caso contrário, especifique o índice baseado em zero de uma página de propriedades na matriz especificada no membro lphPropertyPages . Para obter consistência, recomenda-se que a folha sempre ser iniciado na página Geral.
dwResultAction
Na entrada, defina esse membro para zero. Se a função PrintDlgEx retorna S_OK, dwResultAction contém o resultado da caixa de diálogo. Se PrintDlgEx retorna um erro, esse membro deve ser ignorado. O membro de dwResultAction pode ser uma dos seguinte valores.
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.

Observações

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.

QuickInfo

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.

Ver também

Common Dialog Box Library Overview, Common Dialog Box Structures, CreateDC, CreateIC, CreatePropertySheetPage, DEVMODE, DEVNAMES, IObjectWithSite, IPrintDialogCallback, IPrintDialogServices, PrintDlgEx

Index