Folha de Propriedades de Impressão
A folha de propriedades Imprimir é uma interface do usuário padrão que permite que o usuário especifique as propriedades de um trabalho de impressão específico. A folha de propriedades é composta por um conjunto de páginas de propriedades que varia de acordo com a impressora ou aplicativo. Para um subconjunto de páginas de propriedades padrão do Windows, algumas impressoras podem adicionar páginas de propriedades específicas do driver e alguns aplicativos podem adicionar páginas de propriedades específicas do aplicativo.
Para criar e exibir uma folha de propriedades Print , inicialize uma estrutura PRINTDLGEX e passe a estrutura para a função PrintDlgEx .
A ilustração a seguir mostra uma folha de propriedades print típica.
A maioria dos membros da estrutura PRINTDLGEX são idênticos aos da estrutura PRINTDLG . Para obter descrições de como usar os membros comuns da estrutura para interagir com os controles da caixa de diálogo, consulte Caixa de diálogo Imprimir. O restante deste tópico descreve os recursos da folha de propriedades Print que diferem da caixa de diálogo Imprimir .
Você pode personalizar uma folha de propriedades Imprimir especificando um modelo de caixa de diálogo personalizada para a parte inferior da página Geral e especificando páginas de propriedades adicionais para seguir a página Geral . Para obter mais informações, consulte Personalizando a folha de propriedades de impressão.
Você pode implementar um objeto de retorno de chamada para receber notificações e mensagens da função PrintDlgEx enquanto a folha de propriedades é exibida. Aplicativos que fornecem modelos personalizados ou páginas adicionais usam o objeto de retorno de chamada para se comunicar com a folha de propriedades. Para obter mais informações, consulte Objeto de retorno de chamada para a folha de propriedades de impressão.
A folha de propriedades Imprimir dá suporte para especificar vários intervalos de páginas não contíguos a serem impressos. O membro lpPageRanges da estrutura PRINTDLGEX especifica uma matriz de estruturas PRINTPAGERANGE na qual cada estrutura especifica um intervalo de páginas.
A folha de propriedades Imprimir exibe um botão de opção Página Atual como parte do grupo de botões de opção Intervalo de Páginas . Para controlar o botão de opção Página Atual , use os sinalizadores PD_CURRENTPAGE e PD_NOCURRENTPAGE no membro Flags da estrutura PRINTDLGEX .
Esta seção discute os tópicos a seguir.
- Personalizando a folha de propriedades de impressão
- Objeto de retorno de chamada para a folha de propriedades de impressão
Personalizando a folha de propriedades de impressão
Você pode personalizar a folha de propriedades Imprimir das seguintes maneiras:
- Forneça um modelo personalizado para a parte inferior da página Geral . Isso permite que você inclua controles adicionais exclusivos para seu aplicativo. A função PrintDlgEx usa seu modelo personalizado no lugar do modelo padrão.
- Forneça páginas de propriedades adicionais para seguir a página Geral .
- Forneça um objeto de retorno de chamada. Para obter mais informações, consulte Objeto de retorno de chamada para a folha de propriedades de impressão.
Não é possível alterar a parte superior da página Geral . Não é possível alterar as páginas de propriedades fornecidas pelo driver da impressora.
Para fornecer um modelo personalizado para a página Geral:
Crie um modelo personalizado para a parte inferior da página Geral modificando o modelo PRINTDLGEXORD especificado no arquivo Prnsetup.dlg. Normalmente, o modelo personalizado deve ter o mesmo tamanho que o modelo padrão. No entanto, você poderá ampliar o modelo personalizado se especificar o sinalizador PD_USELARGETEMPLATE para criar uma página Geral maior. Os identificadores de controle usados no modelo de caixa de diálogo Imprimir padrão são definidos no arquivo Dlgs.h.
Use a estrutura PRINTDLGEX para habilitar o modelo da seguinte maneira:
Se o modelo personalizado for um recurso em um aplicativo ou biblioteca de vínculo dinâmico, defina o sinalizador PD_ENABLEPRINTTEMPLATE no membro Flags . Use os membros hInstance e lpPrintTemplateName da estrutura para identificar o módulo e o nome do recurso.
-Ou-
Se o modelo personalizado já estiver na memória, defina o sinalizador PD_ENABLEPRINTTEMPLATEHANDLE . Use o membro hInstance para identificar o objeto de memória que contém o modelo.
Se você usar um modelo personalizado para definir controles adicionais, deverá fornecer um objeto de retorno de chamada para processar a entrada para seus controles. O objeto de retorno de chamada implementa um método IPrintDialogCallback::HandleMessage que recebe mensagens enviadas para a caixa de diálogo personalizada.
Para fornecer páginas de propriedades adicionais
Use a função para criar as páginas adicionais.
Use o membro lphPropertyPages da estrutura PRINTDLGEX para especificar uma matriz de identificadores para as páginas adicionais.
Os procedimentos da caixa de diálogo especificados quando você criou cada página processa mensagens enviadas para as páginas.
Talvez você queira fornecer um objeto de retorno de chamada que implemente a interface . A função PrintDlgEx usa essa interface para passar para o aplicativo um ponteiro para uma interface IPrintDialogServices . Os procedimentos da caixa de diálogo para as páginas de propriedades adicionais podem usar essa interface para recuperar informações sobre a impressora selecionada no momento.
Objeto de retorno de chamada para a folha de propriedades de impressão
Um aplicativo que exibe uma folha de propriedades Print pode implementar um objeto de retorno de chamada para receber notificações e mensagens da função PrintDlgEx enquanto a folha de propriedades é exibida. Para fornecer um objeto de retorno de chamada, especifique um ponteiro para o objeto no membro lpCallback da estrutura PRINTDLGEX .
O objeto de retorno de chamada deve implementar a interface IPrintDialogCallback . A função PrintDlgEx chama métodos IPrintDialogCallback nas seguintes situações:
- Quando a caixa de diálogo tiver sido inicializada
- Quando o usuário seleciona uma impressora diferente na lista de impressoras instaladas exibida pela folha de propriedades
- Quando recebe mensagens para a caixa de diálogo filho na parte inferior da página Geral da folha de propriedades
O objeto de retorno de chamada também deve implementar a interface IObjectWithSite . A função PrintDlgEx chama o método para passar um ponteiro para uma interface IPrintDialogServices para um aplicativo. Os métodos IPrintDialogCallback podem usar a interface IPrintDialogServices para recuperar informações sobre a impressora selecionada no momento. A interface IPrintDialogServices também é útil para aplicativos que criam páginas adicionais para seguir a página Geral da folha de propriedades Imprimir . Os procedimentos da caixa de diálogo para as páginas adicionais podem chamar métodos IPrintDialogServices .