1

我有一个 HMENU 并且我知道该项目位于给定位置,拥有该信息是否可以执行以下操作:RunMenuItem(hMenu,3)该项目的位置在哪里 3?

4

1 回答 1

2

当您从菜单中选择一个项目时,可能会发生以下两种情况之一:

  • 一条WM_COMMAND消息被发布到菜单的父窗口,包含菜单项 ID,或者
  • 如果菜单TrackPopupMenu 标志一起显示,则TPM_RETURNCMD所选项目 ID 作为调用的结果返回TrackPopupMenu

在第一种情况下,您可以通过简单地WM_COMMAND使用适当的参数自己发布消息来以编程方式模拟这一点。您需要查询HMENU菜单项 ID(使用GetMenuItemInfo)。

在第二种情况下,没有简单的方法来模拟它,因为它依赖于调用线程实际调用TrackPopupMenu和处理结果。

于 2012-12-09T20:17:43.810 回答