winuser.h

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.