问题标签 [trackpopupmenu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3814 浏览

ui-automation - 如何以编程方式在 Windows 中选择弹出菜单项?

我有一个应用程序,我正在为其编写一个小向导。它通过将鼠标移动到适当的按钮、菜单并单击它们来自动化应用程序的一小部分,以便用户可以观看。

到目前为止,它将鼠标移动到树项目并发送右键单击。通过 TrackPopupMenu 弹出一个菜单。接下来,我将鼠标移动到弹出菜单上的相应项目。我不知道如何选择菜单项。

我尝试将左键单击发送到菜单的所有者窗口,尝试将 WM_COMMAND 发送到菜单的所有者等。没有任何效果。

我想菜单本身就是一个窗口,但我不知道如何从我拥有的 HMENU 中获取它的 HWND。

关于如何 PostMessage 单击弹出菜单有什么想法吗?

PS 我使用单独的线程来驱动鼠标和发布消息,所以 TrackPopupMenu 同步没有问题。

0 投票
1 回答
903 浏览

c++ - 如何在 TrackPopupMenu 中获取助记符?

我有一个带有上下文菜单的 win32/MFC 应用程序,我以编程方式构建:

为简洁起见,我省略了其余的菜单项。菜单有效,包括键盘快捷键,但问题是我在最终菜单中看不到带下划线的快捷键。

此菜单有一个条目:

例子

虽然我希望输入(粗体字母会加下划线)。

示例_

如何让下划线显示?

0 投票
2 回答
241 浏览

c++ - 在 Windows 和 C++ 中延迟填充子菜单

我有一个基于 C++ MFC CMenu 的上下文菜单对象,它有几个菜单项,一个菜单项是一个弹出菜单(即有一个子菜单)。填充子菜单是一个耗时的过程,所以我不想在用户点击它之前实际填充它。

如何检测子菜单的显示,以便我只能在用户单击它时填充它?

我正在使用 TrackPopupMenu 向用户显示菜单。