【问题标题】:How to show available windows in the Window menu如何在窗口菜单中显示可用窗口
【发布时间】:2009-08-06 13:19:16
【问题描述】:

我有一个 MFC MDI 应用程序,我最近从 VS2003 移植到 VS2008,同时从 Stingray Objective Studio 2006 v2 转移到 v10.1。在我的应用程序的先前版本中,如果我打开了多个视图,则窗口菜单将由可用视图的枚举列表填充,例如1 MyViewA2 MyViewB 等...如果我有大量视图,我还会获得 Windows... 菜单选项允许我选择一个视图。这不再发生,这破坏了我的一些 GUI 级回归测试。我的猜测是这个功能是由 CMDIFrameWnd 或 SECMDIFrameWnd 实现的,但我在文档中找不到对它的引用。有谁知道我怎样才能恢复这个功能。

【问题讨论】:

    标签: c++ mfc mdi stingray


    【解决方案1】:

    我要做的第一件事是使用 ClassWizard 创建一个新的 MDI 应用程序并检查您缺少的功能是否存在。如果是这样,请四处寻找,看看您是否能分辨出有什么不同。一个地方可能是主菜单的菜单资源。

    如果没有提供您需要的内置功能,您可以使用以下伪代码动态构建菜单:

    foreach registered CDocumentTemplate 
        foreach document
            foreach view
            {
                if (numberOfWindowMenuItems < 5)
                {
                    Add menu item
                }
                else
                {
                    Add "Windows..." menu item
                    break all loops;
                }
    

    【讨论】:

    • 这几乎就是我所做的,它将问题隔离为仅发生在基于 Stingray 的项目中。从那以后,我一直在寻求他们的技术支持并得到了修复。感谢您的反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多