如何在“窗口”菜单中显示可用的窗口

时间:2009-08-06 13:19:16

标签: c++ mfc mdi stingray

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

1 个答案:

答案 0 :(得分:1)

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

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

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