Método IPrintDialogCallback::HandleMessage (commdlg.h)
Lo llama PrintDlgEx para dar a la aplicación la oportunidad de controlar los mensajes enviados al cuadro de diálogo secundario en la parte inferior de la página General de la hoja de propiedades de impresión. El cuadro de diálogo secundario contiene controles similares a los del cuadro de diálogo Imprimir .
Sintaxis
HRESULT HandleMessage(
HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT *pResult
);
Parámetros
hDlg
Tipo: HWND
Identificador del cuadro de diálogo secundario en la parte inferior de la página General .
uMsg
Tipo: UINT
Identificador del mensaje que se recibe.
wParam
Tipo: WPARAM
Información adicional acerca del mensaje. El significado exacto depende del valor del parámetro uMsg .
lParam
Tipo: LPARAM
Información adicional acerca del mensaje. El significado exacto depende del valor del parámetro uMsg .
Si el parámetro uMsg indica el mensaje de WM_INITDIALOG , lParam es un puntero a una estructura PRINTDLGEX que contiene los valores especificados cuando se creó la hoja de propiedades.
pResult
Tipo: LRESULT*
Indica el resultado que va a devolver el procedimiento del cuadro de diálogo para el mensaje. El valor al que se apunta debe ser TRUE si procesa el mensaje; de lo contrario, debe ser FALSE o cualquier valor adecuado según el tipo de mensaje.
Valor devuelto
Tipo: HRESULT
Devuelve S_OK si la implementación de IPrintDialogCallback::HandleMessage controló el mensaje. En este caso, la función PrintDlgEx no realiza ningún control de mensajes predeterminado.
Devuelve S_FALSE si quieres que PrintDlgEx realice su control de mensajes predeterminado.
Comentarios
Para los mensajes de notificación pasados por el mensaje de WM_NOTIFY , debe usar la función SetWindowLong con el valor DWL_MSGRESULT para establecer un valor devuelto. Al llamar a SetWindowLong, use GetParent(hDlg) para establecer el valor DWL_MSGRESULT de la página General , que es el elemento primario de la ventana secundaria.
El procedimiento de cuadro de diálogo predeterminado para la ventana secundaria de la parte inferior de la página General procesa el mensaje WM_INITDIALOG antes de pasarlo al método HandleMessage . Para todos los demás mensajes enviados a la ventana secundaria, HandleMessage recibe primero el mensaje. A continuación, el valor devuelto handleMessage determina si el procedimiento de diálogo predeterminado procesa el mensaje o lo omite.
Si HandleMessage procesa el mensaje WM_CTLCOLORDLG , debe devolver un identificador de pincel válido para pintar el fondo del cuadro de diálogo. En general, si HandleMessage procesa algún mensaje WM_CTLCOLOR* , debe devolver un identificador de pincel válido para pintar el fondo del control especificado.
No llame a la función EndDialog desde el método HandleMessage . En su lugar, HandleMessage puede llamar a la función PostMessage para publicar un mensaje de WM_COMMAND con el valor IDABORT en el procedimiento del cuadro de diálogo. La publicación de IDABORT cierra la hoja de propiedades print y hace que PrintDlgEx devuelva PD_RESULT_CANCEL en el miembro dwResultAction de la estructura PRINTDLGEX . Si necesita saber por qué HandleMessage cerró el cuadro de diálogo, debe proporcionar su propio mecanismo de comunicación entre el método HandleMessage y la aplicación.
Puede subclase los controles estándar del cuadro de diálogo secundario en la parte inferior de la página General . Estos controles estándar son similares a los que se encuentran en el cuadro de diálogo Imprimir . Sin embargo, el procedimiento del cuadro de diálogo predeterminado también puede subclase de los controles. Por este motivo, debe subclase los controles cuando HandleMessage procesa el mensaje WM_INITDIALOG . Esto garantiza que el procedimiento de subclase reciba mensajes específicos del control antes del procedimiento de subclase establecido por el procedimiento del cuadro de diálogo.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | commdlg.h (incluye Windows.h) |
Archivo DLL | Comdlg32.dll |
Consulte también
Biblioteca de cuadros de diálogo comunes
Conceptual
Otros recursos
Referencia