Compartir a través de


mensaje de WM_MENUSELECT

Se envía a la ventana de propietario de un menú cuando el usuario selecciona un elemento de menú.

#define WM_MENUSELECT                   0x011F

Parámetros

wParam

La palabra de orden bajo especifica el elemento de menú o el índice de submenú. Si el elemento seleccionado es un elemento de comando, este parámetro contiene el identificador del elemento de menú. Si el elemento seleccionado abre un menú desplegable o submenú, este parámetro contiene el índice del menú desplegable o submenú del menú principal y el parámetro lParam contiene el identificador del menú principal; use la función GetSubMenu para obtener el identificador de menú en el menú desplegable o submenú.

La palabra de orden superior especifica una o varias marcas de menú. Este parámetro puede ser uno o varios de los siguientes valores.

Importancia Meaning
MF_BITMAP
0x00000004L
El elemento muestra un mapa de bits.
MF_CHECKED
0x00000008L
Se comprueba el elemento.
MF_DISABLED
0x00000002L
El elemento está deshabilitado.
MF_GRAYED
0x00000001L
El elemento está atenuado.
MF_HILITE
0x00000080L
El elemento está resaltado.
MF_MOUSESELECT
0x00008000L
El elemento está seleccionado con el mouse.
MF_OWNERDRAW
0x00000100L
Item es un elemento dibujado por el propietario.
MF_POPUP
0x00000010L
Item abre un menú desplegable o submenú.
MF_SYSMENU
0x00002000L
El elemento está incluido en el menú de la ventana. El parámetro lParam contiene un identificador para el menú asociado al mensaje.

lParam

Identificador del menú principal.

Valor devuelto

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

Observaciones

Este mensaje se envía a la ventana del propietario de un menú cuando el usuario selecciona un elemento de menú en un menú abierto, normalmente mediante la navegación por el mouse o el teclado. Si el menú está cerrado, este mensaje no se envía cuando el usuario mueve el mouse sobre un elemento de menú de nivel superior. Este mensaje se envía solo después de que el usuario abra el menú haciendo clic en un elemento de menú de nivel superior o presionando la tecla ALT .

Importante

Cuando un usuario hace clic en un elemento de menú o presiona Entrar para invocar un elemento de menú seleccionado, se envía un mensaje WM_COMMAND o WM_MENUCOMMAND a la ventana, según el valor del miembro dwStyle de la estructura MENUINFO del menú. Use esos mensajes para realizar una acción cuando se invoque el comando seleccionado.

Si la palabra de orden superior de wParam contiene 0xFFFF y el parámetro lParam contiene NULL, el sistema ha cerrado el menú.

No use el valor -1 para la palabra de orden superior de wParam, ya que este valor se especifica como HIWORD(wParam) (UINT). Aunque 0xFFFF se pueda interpretar como -1 en contextos con signo, si el valor es 0xFFFF, se interpretaría como 0x0000FFFF, no -1, debido a la conversión a UINT.

Por ejemplo, este código comprueba si hay 0xFFFF, no -1:

case WM_MENUSELECT:
{
    UINT menuItem = LOWORD(wParam);
    UINT flags = HIWORD(wParam);
    HMENU hMenu = (HMENU)lParam;

    // Check for 0xFFFF, not -1.
    if (flags == 0xFFFF && hMenu == NULL) {
        // No menu item selected (menu closed).
        // ...
    }
    break;
}

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

GetSubMenu

HIWORD

LOWORD

Conceptual

Aceleradores de teclado