如何在win32中实现自动隐藏?我在我的应用程序中有一个菜单,我可以用SetMenu( hwndDlg, NULL )
隐藏,我可以用SetMenu( hwndDlg, hMenu )
重新启用它但是我想模仿许多现代应用程序所具有的行为(例如IE9),其中菜单是隐藏直到你按Alt键。然后当主窗口聚焦时,菜单再次消失。是否有标准API来执行此操作?或者,我可以检查焦点和Alt按钮。
在使用Spy ++进行一些调查之后,我能够显示使用SC_KEYMENU处理WM_SYSCOMMAND的菜单,但仍然不确定要处理的消息以使菜单消失。
答案 0 :(得分:1)
所以你只想知道用户何时完成菜单,以便你可以再次隐藏它?
如果有,请尝试WM_EXITMENULOOP消息。
显然,应用程序获取常规应用程序菜单,系统菜单和任何“TrackPopupMenu”菜单的WM_ENTER / EXITMENULOOP,因此您可以在常规菜单已被隐藏时(例如,如果用户访问并取消系统菜单)。