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 = (char) LOWORD(wParam); // ASCII character
fuFlag = (UINT) HIWORD(wParam); // menu flag
hmenu = (HMENU) lParam; // handle of menu
Parameters
chUser
Value of the
low-order word of wParam. Specifies the ASCII character 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.
Identifies 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 |
0 |
Informs Windows
that it should discard the character the user pressed and create a short beep
on the system speaker. |
1 |
Informs
Windows that it should close the active menu. |
2 |
Informs
Windows that the low-order word of the return value specifies the zero-based
relative position of a menu item. This item is selected by Windows. |
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.