gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 08:30:18 24 4
gpt4 key购买 nike

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

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

最佳答案

更新菜单和窗口标题在两种方法中分别处理。

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

我认为某处调用顺序错误,更新标题将晚于更新菜单。毕竟,窗口菜单中的标题有时仍然是一个空字符串。

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

关于c++ - 如何填充 MFC C++ 应用程序中的 Windows 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2426562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com