确定菜单是否已下拉

时间:2009-04-12 03:26:42

标签: windows menu

有没有办法确定win32 api中的菜单是否已被删除?可以像这样使用的东西:

HMENU hMenu = GetMenu(hWnd);

HMENU hSubMenu = GetSubMenu(hMenu);

// hSubMenu下降了吗?

1 个答案:

答案 0 :(得分:2)

我不确定如何在HMENU上专门操作以查看菜单是否显示(并且平台SDK文档的快速扫描没有显示任何特定的内容),但您可能能够使用GetMenuItemInfo函数获取与拥有下拉列表的菜单项相关的MENUITEMINFO结构。如果fState成员设置了MFS_HILITE,则表示该项目已被选中且子菜单很可能已打开。我不保证正确性,但值得尝试。

另一个可能的选择是使用FindWindow和“#32768”类来查找可能打开的菜单的hWnd,并将MN_GETHMENU消息发送到您找到的任何窗口以检索{ {1}}并将其与HMENU的预期值进行比较。