Partilhar via


Imprimir folha de propriedades

A folha de propriedades Print é uma interface de usuário padrão que permite ao usuário especificar 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 o 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 a estrutura PRINTDLGEX e passe-a para a função PrintDlgEx.

A ilustração a seguir mostra um típico Imprimir folha de propriedades.

folha de propriedades da impressora

A maioria dos membros da estruturaPRINTDLGEX são idênticos aos da estruturaPRINTDLG. Para obter descrições de como usar os membros da estrutura comum para interagir com os controlos da Caixa de Diálogo Imprimir, consulte Caixa de Diálogo Imprimir. O restante deste tópico descreve as características da folha de propriedades Imprimir que diferem da caixa de diálogo Imprimir.

Você pode personalizar uma folha de propriedades de impressão especificando um modelo de caixa de diálogo personalizado para a parte inferior da página Geral e especificando páginas de propriedades adicionais para seguirem a página Geral. Para obter mais informações, consulte Personalizando a folha de propriedades de impressão.

Você pode implementar um objeto de callback para receber notificações e mensagens da funçãoPrintDlgEx enquanto a caixa de diálogo de propriedades é exibida. Os 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 o objeto de callback da folha de propriedades de impressão.

A ficha de propriedades Print oferece suporte para especificar vários intervalos de páginas não contíguos para a impressão. O membro lpPageRanges da estrutura PRINTDLGEX especifica uma matriz de estruturas PRINTPAGERANGE, onde cada estrutura define um intervalo de páginas.

A ficha 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 seguintes tópicos.

Personalizando a folha de propriedades de impressão

Você pode personalizar a folha de propriedades de Imprimir das seguintes maneiras:

  • Forneça um modelo personalizado para a parte inferior da página Geral . Isso permite que você inclua controles adicionais que são exclusivos para seu aplicativo. A funçãoPrintDlgEx 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 Callback 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:

  1. 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, pode ampliar o modelo personalizado se especificar o flag PD_USELARGETEMPLATE para criar uma página Geral maior. Os identificadores de controle usados no modelo de diálogo padrão Imprimir são definidos no arquivo Dlgs.h.

  2. Use a estrutura PRINTDLGEX para habilitar o modelo da seguinte maneira:

    • Se o seu modelo personalizado for um recurso num aplicativo ou biblioteca de vínculo dinâmico, defina o sinalizador PD_ENABLEPRINTTEMPLATE no membro Flags. Utilize os hInstance e lpPrintTemplateName, os membros da estrutura, para identificar o módulo e o nome do recurso.

      -Ou-

    • Se o seu modelo personalizado já estiver na memória, defina o indicador PD_ENABLEPRINTTEMPLATEHANDLE. Use o membro hInstance para identificar o objeto de memória que contém o modelo.

  3. Se usares um modelo personalizado para definir controlos adicionais, deves fornecer um objeto callback para processar a entrada para os teus controlos. 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

  1. Use a função para criar as páginas adicionais.

  2. Utilize 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 processam mensagens enviadas para as páginas.

  3. Talvez seja necessário fornecer um objeto callback que implemente a interface. A função PrintDlgEx usa esta interface para passar para a aplicação 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 Callback para a Folha de Propriedades de Impressão

Uma aplicação que exibe uma ficha de propriedades Print pode implementar um objeto de retorno de chamada para receber notificações e mensagens da funçãoPrintDlgEx doenquanto a ficha 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 callback deve implementar a interface IPrintDialogCallback. A função PrintDlgExchama métodos IPrintDialogCallback nas seguintes situações:

  • Quando a caixa de diálogo foi inicializada
  • Quando o usuário seleciona uma impressora diferente da lista de impressoras instaladas exibida pela folha de propriedades
  • Quando recebe mensagens para a caixa de diálogo secundária 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 interfaceIPrintDialogServicespara um aplicativo. Os métodos IPrintDialogCallback podem usar a interface IPrintDialogServices para recuperar informações sobre a impressora selecionada no momento. O interface IPrintDialogServices também é útil para aplicações que criam páginas adicionais para serem apresentadas após a página Geral da folha de propriedades Imprimir. Os procedimentos das caixas de diálogo para as páginas adicionais podem chamar os métodos IPrintDialogServices.