c++ - 确定 WM_SYSCOMMAND 或 WM_ENTERMENULOOP 激活了哪些菜单项?

标签 c++ api winapi

在 Win32 API 中,在 windows 消息中假定一个菜单

&文件 -- &编辑 -- &查看

用户点击文件。发送 WM_SYSCOMMAND(WParam = SC_MOUSEMENU 或可能是 SC_KEYMENU),然后发送 WM_ENTERMENULOOP。 用户单击编辑。一样。

我想在弹出之前知道要显示哪个。激活的是&File,&Edit吗?

它看起来不像 WM_SYSCOMMAND 或 WM_ENTERMENULOOP 传递提供此信息的信息。有什么方法可以确定这一点吗?

最佳答案

那就是 WM_INITMENUPOPUP .

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

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

关于c++ - 确定 WM_SYSCOMMAND 或 WM_ENTERMENULOOP 激活了哪些菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15290350/

相关文章:

php - 对于 PHP REST API,如何在类定义之外定义/设置数据库连接参数?

javascript - 如何使用 Mapbox API 中的 Jquery 从事件 li > a 获取值?

c++ - 无法在 Windows 中以编程方式 (C++) 从其他用户帐户读取文件

c++ - 为什么引用在 C++ 中不可重新安装

c++ - std::span <const T>作为功能模板中的参数

java - Android Studio 上的 java.lang.ExceptionInInitializerError 和 java.lang.IllegalArgumentException 是什么?

c++ - 创建带有子窗口(控件)的分层窗口的策略

c++ - C++/Qt 应用程序中没有 R 的 MonetDBLite

c++ - 与C++中的delete关键字操作混淆

c++ - Opengl:渲染到 Win32 API 上下文