Compartilhar via


Função de retorno de chamada LPPRINTHOOKPROC (commdlg.h)

Recebe mensagens ou notificações destinadas ao procedimento da caixa de diálogo padrão da caixa de diálogo Imprimir . Essa é uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca que é usada com a função PrintDlg .

O tipo LPPRINTHOOKPROC define um ponteiro para essa função de retorno de chamada. PrintHookProc é um espaço reservado para o nome da função definida pelo aplicativo ou pela biblioteca.

Sintaxe

LPPRINTHOOKPROC Lpprinthookproc;

UINT_PTR Lpprinthookproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

Parâmetros

unnamedParam1

Um identificador para a caixa de diálogo Imprimir para a qual a mensagem se destina.

unnamedParam2

O identificador da mensagem que está sendo recebida.

unnamedParam3

Informações adicionais sobre a mensagem. O significado exato depende do valor do parâmetro unnamedParam2 .

unnamedParam4

Informações adicionais sobre a mensagem. O significado exato depende do valor do parâmetro unnamedParam2 .

Se o parâmetro unnamedParam2 indicar a mensagem WM_INITDIALOG , unnamedParam4 será um ponteiro para uma estrutura PRINTDLG que contém os valores especificados quando a caixa de diálogo foi criada.

Valor retornado

Se o procedimento de gancho retornar zero, o procedimento da caixa de diálogo padrão processará a mensagem.

Se o procedimento de gancho retornar um valor diferente de zero, o procedimento da caixa de diálogo padrão ignorará a mensagem.

Comentários

Ao usar a função PrintDlg para criar uma caixa de diálogo Imprimir , você pode fornecer um procedimento de gancho PrintHookProc para processar mensagens ou notificações destinadas ao procedimento da caixa de diálogo. Para habilitar o procedimento de gancho, use a estrutura PRINTDLG que você passou para a função de criação da caixa de diálogo. Especifique o endereço do procedimento de gancho no membro lpfnPrintHook e especifique o sinalizador PD_ENABLEPRINTHOOK no membro Flags .

O procedimento da caixa de diálogo padrão processa a mensagem WM_INITDIALOG antes de passá-la para o procedimento de gancho. Para todas as outras mensagens, o procedimento de gancho recebe a mensagem primeiro. Em seguida, o valor retornado do procedimento de gancho determina se o procedimento de diálogo padrão processa a mensagem ou a ignora.

Se o procedimento de gancho processar a mensagem WM_CTLCOLORDLG , ele deverá retornar um identificador de pincel válido para pintar a tela de fundo da caixa de diálogo. Em geral, se o procedimento de gancho processar qualquer mensagem WM_CTLCOLOR* , ele deverá retornar um identificador de pincel válido para pintar a tela de fundo do controle especificado.

Não chame a função EndDialog do procedimento de gancho. Em vez disso, o procedimento de gancho pode chamar a função PostMessage para postar uma mensagem WM_COMMAND com o valor IDABORT no procedimento da caixa de diálogo. Postar IDABORT fecha a caixa de diálogo e faz com que a função da caixa de diálogo retorne FALSE. Se você precisar saber por que o procedimento de gancho fechou a caixa de diálogo, forneça seu próprio mecanismo de comunicação entre o procedimento de gancho e seu aplicativo.

Você pode subclasse os controles padrão de uma caixa de diálogo comum. No entanto, o procedimento da caixa de diálogo também pode subclasse dos controles. Por isso, você deve controlar a subclasse quando o procedimento de gancho processar a mensagem de WM_INITDIALOG . Isso garante que o procedimento de subclasse receba as mensagens específicas do controle antes do procedimento de subclasse definido pelo procedimento da caixa de diálogo.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho commdlg.h (inclua Windows.h)

Confira também

Biblioteca de caixas de diálogo comuns

Conceitual

EndDialog

PRINTDLG

PostMessage

Printdlg

Referência

WM_CTLCOLORDLG

WM_INITDIALOG