Mensaje WM_MENUSELECT
Definición
WM_MENUSELECT uItem = (UINT) LOWORD(wParam); // ítem de menú o índice de submenú fuFlags = (UINT) HIWORD(wParam); // banderas de menú hmenu = (HMENU) lParam; // manipulador de menú activado
El mensaje WM_MENUSELECT se envía a la ventana dueña de un menú cuando el usuario selecciona un ítem del menú.
Descripción
uItem: valor de la palabra de menor peso de wParam. Si el ítem seleccionado es un ítem de comando, este parámetro contiene el identificador del ítem de menú. Si el ítem seleccionado abre un menú emergente o un submenú, este parámetro contiene el índice de menú del menú emergente o del submenú en el menú principal, y el parámetro hMenu contendrá en ese caso, el manipulador del menú principal (activado); usar la función GetSubMenu para obtener el manipulador de menú del menú emergente o del submenú.
fuFlags: valor de la palabra de mayor peso de wParam. Especifica una o más banderas de menú. Este parámetro puede ser una combinación de los siguientes valores:
Valor | Descripción |
---|---|
MF_BITMAP | El ítem muestra un mapa de bits. |
MF_CHECKED | El ítem está marcado. |
MF_DISABLED | El ítem está deshabilitado. |
MF_GRAYED | El ítem está gris. |
MF_HILITE | El ítem está resaltado. |
MF_MOUSESELECT | El item está seleccionado con el ratón. |
MF_OWNERDRAW | El ítem es owner-drawn. |
MF_POPUP | El ítem abre un menú emergente o un submenú. |
MF_SYSMENU | El ítem está contenido en el menú de ventana (también conocido como menú de sistema o menú de control. El parámetro hmenu identifica el menú de ventana asociado con el mensaje. |
hmenu: valor de lParam. Identifica el menú que ha sido activado.
Valor de retorno
Si una aplicación procesa este mensaje, debe retornar cero.
Observaciones
Si el parámetro fuFlags contiene 0xFFFF y el menú hmenu contiene NULL, Windows ha cerrado el menú.
No usar el valor -1 para fuFlags. Esto es porque fuFlags está especificado como
(UINT) HIWORD(wParam)
. Si HIWORD(wParam)
era 0xFFFF, fuFlags (debido al
cast a UINT) sería 0x0000FFFF, no -1.