Win32 - 自动隐藏菜单

时间:2011-04-29 16:26:17

标签: winapi animation menu

如何在win32中实现自动隐藏?我在我的应用程序中有一个菜单,我可以用SetMenu( hwndDlg, NULL )隐藏,我可以用SetMenu( hwndDlg, hMenu )重新启用它但是我想模仿许多现代应用程序所具有的行为(例如IE9),其中菜单是隐藏直到你按Alt键。然后当主窗口聚焦时,菜单再次消失。是否有标准API来执行此操作?或者,我可以检查焦点和Alt按钮。

在使用Spy ++进行一些调查之后,我能够显示使用SC_KEYMENU处理WM_SYSCOMMAND的菜单,但仍然不确定要处理的消息以使菜单消失。

1 个答案:

答案 0 :(得分:1)

所以你只想知道用户何时完成菜单,以便你可以再次隐藏它?

如果有,请尝试WM_EXITMENULOOP消息。

显然,应用程序获取常规应用程序菜单,系统菜单和任何“TrackPopupMenu”菜单的WM_ENTER / EXITMENULOOP,因此您可以在常规菜单已被隐藏时(例如,如果用户访问并取消系统菜单)。