有没有办法确定win32 api中的菜单是否已被删除?可以像这样使用的东西:
HMENU hMenu = GetMenu(hWnd);
HMENU hSubMenu = GetSubMenu(hMenu);
// hSubMenu下降了吗?
答案 0 :(得分:2)
我不确定如何在HMENU上专门操作以查看菜单是否显示(并且平台SDK文档的快速扫描没有显示任何特定的内容),但您可能能够使用GetMenuItemInfo
函数获取与拥有下拉列表的菜单项相关的MENUITEMINFO
结构。如果fState
成员设置了MFS_HILITE
,则表示该项目已被选中且子菜单很可能已打开。我不保证正确性,但值得尝试。
另一个可能的选择是使用FindWindow
和“#32768”类来查找可能打开的菜单的hWnd,并将MN_GETHMENU
消息发送到您找到的任何窗口以检索{ {1}}并将其与HMENU
的预期值进行比较。