【问题标题】:Win32 - Autohide MenuWin32 - 自动隐藏菜单
【发布时间】:2011-04-29 16:26:16
【问题描述】:

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

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

【问题讨论】:

    标签: winapi animation menu


    【解决方案1】:

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

    如果是这样,请尝试WM_EXITMENULOOP 消息。

    显然,应用程序会为常规应用程序菜单、系统菜单和任何“TrackPopupMenu”菜单获取 WM_ENTER/EXITMENULOOP,因此当常规菜单已隐藏时(例如,如果用户访问并关闭系统菜单)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多