WM_MENUSELECT  XU8WQH 

The WM_MENUSELECT message is sent to a menu s owner window when the user selects a menu item.

WM_MENUSELECT

uItem = (UINT) LOWORD(wParam);   // menu item or submenu index

fuFlags = (UINT) HIWORD(wParam); // menu flags

hmenu = (HMENU) lParam;          // handle of menu clicked

 

Parameters

uItem

Value of the low-order word of wParam. If the selected item is a command item, this parameter contains the identifier of the menu item. If the selected item opens a drop-down menu or submenu, this parameter contains the menu index of the drop-down menu or submenu in the main menu, and the hMenu parameter then contains the handle of the main (clicked) menu; use the GetSubMenuTIZM5Q function to get the menu handle of the drop-down menu or submenu.

fuFlags

Value of the high-order word of wParam. Specifies one or more menu flags. This parameter can be a combination of the following values:

Value

Description

MF_BITMAP

Item displays a bitmap.

MF_CHECKED

Item is checked.

MF_DISABLED

Item is disabled.

MF_GRAYED

Item is grayed.

MF_HILITE

Item is highlighted.

MF_MOUSESELECT

Item is selected with the mouse.

MF_OWNERDRAW

Item is an owner-drawn item.

MF_POPUP

Item opens a drop-down menu or submenu.

MF_SYSMENU

Item is contained in the window menu (also known as the System menu or Control menu). The hmenu parameter identifies the window menu associated with the message.

 

hmenu

Value of lParam. Identifies the menu that was clicked.

 

Return Values

If an application processes this message, it should return zero.

Remarks

If the fuFlags parameter contains 0xFFFF and the hmenu parameter contains NULL, Windows has closed the menu.

Do not use the value -1 for fuFlags. That is because fuFlags is specified as (UINT) HIWORD(wParam). If HIWORD(wParam) were 0xFFFF, fuFlags (because of the UINT cast) would be 0x0000FFFF, not -1.

See Also

GetSubMenu