Compartir a través de


mensaje de WM_COMMAND

Se envía cuando el usuario invoca un elemento de comando desde un menú, cuando un control envía un mensaje de notificación a su ventana primaria o cuando se traduce una pulsación de tecla de aceleración.

#define WM_COMMAND                      0x0111

Parámetros

wParam

Para obtener una descripción de este parámetro, vea Comentarios.

lParam

Para obtener una descripción de este parámetro, vea Comentarios.

Valor devuelto

Si una aplicación procesa este mensaje, debe devolver cero.

Example

BOOL AboutDlg (
    HWND hDlg,
    UINT message,
    WPARAM wParam,
    LPARAM lParam)
{
    BOOL bRet = FALSE;

    switch (message)
    {
        case WM_INITDIALOG:
            bRet = TRUE;
            break;

        case WM_COMMAND:
            if (wParam == IDOK ||
                wParam == IDCANCEL)
            {
                EndDialog(hDlg, TRUE);
                bRet = TRUE;
            }
            break;
    }

    return bRet;
}

Ejemplo tomado de ejemplos clásicos de Windows en GitHub.

Observaciones

Aquí se resume el uso de los parámetros wParam y lParam .

Origen del mensaje wParam (palabra alta) wParam (palabra baja) lParam
Menú 0 Identificador de menú (IDM_*) 0
Acelerador 1 Identificador del acelerador (IDM_*) 0
Supervisión Código de notificación definido por el control Identificador de control Identificador de la ventana de control

En la mayoría de los casos, este es el mensaje que se va a escuchar cuando un usuario invoca un comando en un menú. Sin embargo, si se define un menú con un valor MENUINFO.dwStyle de MNS_NOTIFYBYPOS, se envía WM_MENUCOMMAND en lugar de WM_COMMAND.

Si una aplicación habilita un separador de menús, el sistema envía un mensaje de WM_COMMAND con la palabra baja del parámetro wParam establecido en cero cuando el usuario selecciona el separador.

Aceleradores

Las pulsaciones de tecla del acelerador que seleccionan elementos del menú de la ventana se traducen en mensajes WM_SYSCOMMAND .

Si se produce una pulsación de tecla de aceleración que corresponde a un elemento de menú cuando se minimiza la ventana que posee el menú, no se envía ningún mensaje WM_COMMAND . Sin embargo, si se produce una pulsación de tecla de aceleración que no coincide con ninguno de los elementos del menú de la ventana o en el menú de la ventana, se envía un mensaje de WM_COMMAND , incluso si la ventana está minimizada.

Requisitos

Requirement Importancia
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Header
Winuser.h (incluya Windows.h)

Consulte también

Referencia

HIWORD

LOWORD

Conceptual

Menús