我想让我的wxWidgets应用程序中的菜单栏可切换,例如Firefox和Windows资源管理器正在这样做。这意味着当它隐藏时,按下显示的ALT键。这是相对容易的:我在成员变量m_pMenuBar
中创建时保存菜单,并在时启用菜单wxFrame::SetMenuBar(m_pMenuBar)
并捕获wxEVT_CHAR_HOOK
。wxWidgets中的可切换菜单栏(何时隐藏?)
但现在我想知道什么时候再次禁用菜单。我知道禁用可以用wxFrame::SetMenuBar(nullptr)
完成。很明显,当在相应的wxEVT_MENU
事件中单击菜单项时。但是在支持这种可切换菜单的程序中,当您按下某个键(不是快捷键)或点击屏幕某处(并且不要点击菜单)时,菜单也会隐藏起来。感觉就像菜单“失去了焦点和消失”。由于我已经在拍摄wxEVT_CHAR_HOOK
,所以隐藏在按键上将是可能的。鼠标的东西比较复杂。我尝试了一个计时器来检查鼠标按钮是否被按下,但这看起来相当难看,并且在您选择子菜单时不起作用。
所以我的问题是:什么时候应该隐藏菜单?
非常感谢! jffmichi