Compartilhar via


Método IPrintDialogCallback::HandleMessage (commdlg.h)

Chamado por PrintDlgEx para dar ao seu aplicativo a oportunidade de manipular mensagens enviadas para a caixa de diálogo filho na parte inferior da página Geral da Folha de Propriedades de Impressão. A caixa de diálogo filho contém controles semelhantes aos da caixa de diálogo Imprimir .

Sintaxe

HRESULT HandleMessage(
  HWND    hDlg,
  UINT    uMsg,
  WPARAM  wParam,
  LPARAM  lParam,
  LRESULT *pResult
);

Parâmetros

hDlg

Digite: HWND

Um identificador para a caixa de diálogo filho na parte inferior da página Geral .

uMsg

Tipo: UINT

O identificador da mensagem que está sendo recebida.

wParam

Tipo: WPARAM

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

lParam

Tipo: LPARAM

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

Se o parâmetro uMsg indicar a mensagem WM_INITDIALOG , lParam será um ponteiro para uma estrutura PRINTDLGEX que contém os valores especificados quando a folha de propriedades foi criada.

pResult

Tipo: LRESULT*

Indica o resultado a ser retornado pelo procedimento da caixa de diálogo para a mensagem. O valor apontado deverá ser TRUE se você processar a mensagem, caso contrário, ela deverá ser FALSE ou qualquer valor apropriado de acordo com o tipo de mensagem.

Valor retornado

Tipo: HRESULT

Retorne S_OK se a implementação IPrintDialogCallback::HandleMessage tiver manipulado a mensagem. Nesse caso, a função PrintDlgEx não executa nenhum tratamento de mensagem padrão.

Retorne S_FALSE se quiser que PrintDlgEx execute seu tratamento de mensagens padrão.

Comentários

Para mensagens de notificação passadas pela mensagem WM_NOTIFY , você deve usar a função SetWindowLong com o valor DWL_MSGRESULT para definir um valor retornado. Ao chamar SetWindowLong, use GetParent(hDlg) para definir o valor DWL_MSGRESULT da página Geral , que é o pai da janela filho.

O procedimento da caixa de diálogo padrão para a janela filho na parte inferior da página Geral processa a mensagem WM_INITDIALOG antes de passá-la para o método HandleMessage . Para todas as outras mensagens enviadas para a janela filho, HandleMessage recebe a mensagem primeiro. Em seguida, o valor retornado HandleMessage determina se o procedimento de diálogo padrão processa a mensagem ou a ignora.

Se HandleMessage processar a mensagem WM_CTLCOLORDLG , ela deverá retornar um identificador de pincel válido para pintar a tela de fundo da caixa de diálogo. Em geral, se HandleMessage 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 método HandleMessage . Em vez disso, HandleMessage pode chamar a função PostMessage para postar uma mensagem WM_COMMAND com o valor IDABORT no procedimento da caixa de diálogo. A postagem de IDABORT fecha a Folha de Propriedades de Impressão e faz com que PrintDlgEx retorne PD_RESULT_CANCEL no membro dwResultAction da estrutura PRINTDLGEX . Se você precisar saber por que HandleMessage fechou a caixa de diálogo, forneça seu próprio mecanismo de comunicação entre o método HandleMessage e seu aplicativo.

Você pode subclasse os controles padrão da caixa de diálogo filho na parte inferior da página Geral . Esses controles padrão são semelhantes aos encontrados na caixa de diálogo Imprimir . No entanto, o procedimento da caixa de diálogo padrão também pode subclasse dos controles. Por isso, você deve controlar a subclasse quando HandleMessage processar a mensagem WM_INITDIALOG . Isso garante que o procedimento de subclasse receba 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)
DLL Comdlg32.dll

Confira também

Biblioteca de caixas de diálogo comuns

Conceitual

EndDialog

IPrintDialogCallback

Outros recursos

PRINTDLGEX

PostMessage

Printdlgex

Referência

Setwindowlong

WM_COMMAND

WM_CTLCOLORDLG

WM_INITDIALOG

WM_NOTIFY