当用户选择菜单项时发送到菜单的所有者窗口。
#define WM_MENUSELECT 0x011F
参数
-
wParam
-
低序单词指定菜单项或子菜单索引。 如果所选项是命令项,则此参数包含菜单项的标识符。 如果所选项打开下拉菜单或子菜单,则此参数包含主菜单中下拉菜单或子菜单的索引, lParam 参数包含主菜单的句柄;使用 GetSubMenu 函数获取下拉菜单或子菜单的菜单句柄。
高序单词指定一个或多个菜单标志。 此参数可以是以下一个或多个值。
价值 Meaning - MF_BITMAP
- 0x00000004L
项显示位图。 - MF_CHECKED
- 0x00000008L
已选中项目。 - MF_DISABLED
- 0x00000002L
项目已禁用。 - MF_GRAYED
- 0x00000001L
项为灰色。 - MF_HILITE
- 0x00000080L
突出显示了项。 - MF_MOUSESELECT
- 0x00008000L
使用鼠标选择项。 - MF_OWNERDRAW
- 0x00000100L
项是所有者绘制的项。 - MF_POPUP
- 0x00000010L
项将打开下拉菜单或子菜单。 - MF_SYSMENU
- 0x00002000L
项包含在窗口菜单中。 lParam 参数包含与消息关联的菜单的句柄。 -
lParam
-
主菜单的句柄。
返回值
如果应用程序处理此消息,它应返回零。
注解
当用户在打开的菜单中选择菜单项(通常通过鼠标悬停或键盘导航)时,此消息将发送到菜单的所有者窗口。 如果菜单已关闭,则当用户将鼠标移到顶级菜单项上时,不会发送此消息。 仅当用户单击顶级菜单项或按 Alt 键打开菜单后,才会发送此消息。
重要
当用户单击菜单项或按 Enter 调用所选菜单项时,将WM_COMMAND或WM_MENUCOMMAND消息发送到窗口,具体取决于菜单 MENUINFO 结构的 dwStyle 成员的值。 调用所选命令时,使用这些消息执行作。
如果 wParam 的高阶单词包含0xFFFF且 lParam 参数包含 NULL,则系统已关闭菜单。
不要将值 -1 用于 wParam 的高阶单词,因为此值被指定为 (UINT) HIWORD(wParam)。 尽管0xFFFF可能在签名上下文中解释为 -1,但如果值0xFFFF,则该值将解释为0x0000FFFF,而不是 -1,因为强制转换为 UINT。
例如,此代码检查0xFFFF,而不是 -1:
case WM_MENUSELECT:
{
UINT menuItem = LOWORD(wParam);
UINT flags = HIWORD(wParam);
HMENU hMenu = (HMENU)lParam;
// Check for 0xFFFF, not -1.
if (flags == 0xFFFF && hMenu == NULL) {
// No menu item selected (menu closed).
// ...
}
break;
}
要求
| Requirement | 价值 |
|---|---|
| 支持的最低客户端 |
Windows 2000 Professional [仅限桌面应用] |
| 支持的最低服务器 |
Windows 2000 Server [仅限桌面应用] |
| Header |
|
另请参阅
-
引用
-
概念