繁体   English   中英

如何填充MFC C ++应用程序中的Windows菜单

[英]How is the Windows menu in a MFC C++ app populated

Windows菜单是MFC下提供给Document / View应用程序的标准菜单之一。 它提供了平铺和层叠窗口之类的功能,并在菜单末尾附加了当前可用视图的枚举列表。 问题是,有时候没有,我想知道为什么。 更具体地说,我想知道如何刷新此列表,因为我想在GUI自动化工具下使用它。 通常列表在那儿,有时候却不在,有人知道为什么吗? 我的猜测是CFrameWnd类中有一个函数可以照看这个,但是我似乎找不到它。

编辑:我也正在使用Stingray库的GUI,这很可能与问题有关。

菜单和窗口标题的更新是通过两种方法分别处理的。

  • CFrameWnd::OnUpdateFrameMenu(..)仅实现框架菜单,
  • CFrameWnd::OnUpdateFrameTitle(..)仅刷新框架的名称。

我认为某个地方有错误的呼叫顺序,并且更新标题要晚于更新菜单。 毕竟,“窗口”菜单中的所有标题有时仍为空字符串。

最简单的修复方法是使用GetActiveFrame()->ActivateFrame()方法调用。 它将立即刷新实际的框架窗口和拥有的“窗口”菜单。 创建CDocument和CView之后可以使用它。 最好的调用方法是在应用程序(CWin)App类的OnFileNewOnFileOpen重写方法的末尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM