winuser.h


IsDialogMessage

La función IsDialogMessage determina si un mensaje está destinado al cuadro de diálogo especificado y, si es así, procesa el mensaje.

Sintaxis

BOOL IsDialogMessage(
    HWND hDlg,   // manipulador de cuadro de diálogo
    LPMSG lpMsg  // dirección de estructura con mensaje
   );

Parámetros

hDlg: identifica el cuadro de diálogo.

lpMsg: apunta a una estructura MSG que contiene el mensaje a comprobar.

Valor de retorno

Si el mensaje ha sido procesado, el valor de retorno es distinto de cero.

Si el mensaje no ha sido procesado, el valor de retorno es cero.

Observaciones

A pesar de que la función IsDialogMessage está diseñada para cuadros de diálogo no modales, se puede usar con cualquier ventana que contenga controles, permitiendo a la ventana proporcionar el mismo tipo de selección por teclado que se usa en un cuadro de diálogo.

Cuando IsDialogMessage procesa un mensaje, comprueba si hay mensajes de teclado y los convierte en comandos de selección para el cuadro de diálogo correspondiente. Por ejemplo, la tecla TAB, cuando se presiona, selecciona el siguiente control o grupo de controles, y la tecla de flecha abajo, cuando se presiona, selecciona el siguiente control en un grupo.

Ya que la función IsDialogMessage realiza todas las traducciones y repartos de mensajes necesarios, un mensaje procesado por IsDialogMessage no debe ser pasado a las funciones TranslateMessage o DispatchMessage.

IsDialogMessage envía mensajes WM_GETDLGCODE al procedimiento del cuadro de diálogo para determinar qué teclas deben ser procesadas.

IsDialogMessage puende enviar mensajes DM_GETDEFID y DM_SETDEFID a la ventana. Estos mensajes están definidos en el fichero de cabecera WINUSER.H como WM_USER and WM_USER + 1, de modo que es posible que se presenten conflictos con mensajes definidos por la aplicación que tengan los mismos valores.