我有一个 MFC MDI 应用程序,我最近从 VS2003 移植到 VS2008,同时从 Stingray Objective Studio 2006 v2 移植到 v10.1。在我的应用程序的先前版本中,如果我打开了多个 View ,则窗口菜单将由可用 View 的枚举列表填充,例如1 MyViewA、2 MyViewB 等...如果我有大量 View ,我还会得到一个Windows... 菜单选项允许我选择一个 View 。这不再发生,这打破了我的一些 GUI 级回归测试。我的猜测是此功能是由 CMDIFrameWnd 或 SECMDIFrameWnd 实现的,但我在文档中找不到对它的引用。有谁知道我怎样才能恢复这个功能。
我要做的第一件事是使用 ClassWizard 创建一个新的 MDI 应用程序并检查您缺少的功能是否存在。如果是这样,请四处看看,看看您是否能分辨出有什么不同。一个地方可能是主菜单的菜单资源。
如果没有内置功能来提供您需要的功能,您可以使用以下伪代码动态构建菜单:
foreach registered CDocumentTemplate
foreach document
foreach view
{
if (numberOfWindowMenuItems < 5)
{
Add menu item
}
else
{
Add "Windows..." menu item
break all loops;
}
我是一名优秀的程序员,十分优秀!