WM_MENUCHAR

The WM_MENUCHAR message is sent when a menu is active and the user presses a key that does not correspond to any mnemonic or accelerator key. This message is sent to the window that owns the menu.

WM_MENUCHAR 
chUser = (TCHAR) LOWORD(wParam); // character code
fuFlag = (UINT) HIWORD(wParam);  // menu flag 
hmenu = (HMENU) lParam;          // handle to menu 
 

Parameters

chUser
Value of the low-order word of wParam. Specifies the character code that corresponds to the key the user pressed.
fuFlag
Value of the high-order word of wParam. Specifies the type of the active menu. This parameter can be one of the following values:
Value Meaning
MF_POPUP drop-down menu, submenu, or shortcut menu
MF_SYSMENU window menu (System menu or Control menu)

hmenu
Value of lParam. Handle to the active menu.

Return Values

An application that processes this message should return one of the following values in the high-order word of the return value:

Value Meaning
MNC_IGNORE Informs the system that it should discard the character the user pressed and create a short beep on the system speaker.
MNC_CLOSE Informs the system that it should close the active menu.
MNC_EXECUTE Informs the system that it should choose the item specified in the low-order word of the return value. The owner window receives a WM_COMMAND message.
MNC_SELECT Informs the system that it should select the item specified in the low-order word of the return value.

Remarks

The low-order word is ignored if the high-order word contains 0 or 1. An application should process this message when an accelerator is used to select a menu item that displays a bitmap.

QuickInfo

  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in winuser.h.

See Also

Keyboard Accelerators Overview, Keyboard Accelerator Messages