确定WM_SYSCOMMAND或WM_ENTERMENULOOP激活了哪个菜单项?

时间:2013-03-08 09:10:08

标签: c++ api winapi

在Win32 API中,在Windows消息中假设菜单为

& File - & Edit - & View

用户单击“文件”。 WM_SYSCOMMAND(WParam = SC_MOUSEMENU或SC_KEYMENU)然后发送WM_ENTERMENULOOP。 用户单击“编辑”。相同。

我想知道哪一个即将在弹出之前显示出来。它是& File,是& Edit被激活了吗?

它看起来不像WM_SYSCOMMAND或WM_ENTERMENULOOP传递提供此信息的信息。有没有办法确定这个?

1 个答案:

答案 0 :(得分:2)

那将是WM_INITMENUPOPUP

此消息将发送到所有者窗口。其wParam参数包含即将显示的弹出菜单的HMENU

lParam参数的低位字指定打开弹出窗口的菜单项的索引,如果弹出菜单是系统菜单,则其高位字为TRUE,或者否则FALSE