当用户选择菜单项时,WM_MENUSELECT消息被发送到菜单的所有者窗口。
WM_MENUSELECT
uItem = (UINT) LOWORD(wParam); //菜单项或子菜单索引
fuFlags = (UINT) HIWORD(wParam); //菜单标志
hmenu = (HMENU) lParam; //点击菜单的句柄
参数
【藤】
【wParam中】的低位字的值。如果所选项是命令项,则该参数包含菜单项的标识符。如果所选项目打开下拉菜单或子菜单,该参数包含主菜单中下拉菜单或子菜单的菜单索引,然后【HMENU】参数包含主(单击)菜单的句柄;使用GetSubMenu功能获取下拉菜单或子菜单的菜单句柄。
【fuFlags】
【wParam中】的高位字的值。指定一个或多个菜单标志。此参数可以是以下值的组合:
值 | 描述 |
MF_BITMAP | 项目显示位图。 |
MF_CHECKED | 项目已检查。 |
MF_DISABLED | 项目被禁用。 |
MF_GRAYED | 项目呈灰色 |
MF_HILITE | 项目突出显示。 |
MF_MOUSESELECT | 使用鼠标选择项目。 |
MF_OWNERDRAW | 项目是所有者绘制的项目。 |
MF_POPUP | 项目打开一个下拉菜单或子菜单。 |
MF_SYSMENU | 项目包含在窗口菜单(也称为系统菜单或控制菜单)中。【HMENU】参数标识与消息相关联的窗口菜单。 |
【HMENU】
价值【lParam的】.标识已点击的菜单。
返回值
如果应用程序处理此消息,则应返回零。
备注
如果【fuFlags】参数包含0xFFFF且【HMENU】参数包含NULL,则Windows已关闭菜单。
不要对【fuFlags】使用值-1。这是因为【fuFlags】指定为(UINT)HIWORD(【wParam中】)。如果HIWORD(【wParam中】)为0xFFFF,【fuFlags】(因为UINT演员)将为0x0000FFFF,而不是-1。
也可以看看