c++ - 使用具有多个顶层窗口的 MFC MDI

标签 c++ mfc

我正在使用多个顶级 Windows 应用程序。主窗口是一个 MDIFrameWnd,我在 CWinApp 中放了一些代码来在切换顶层窗口时切换 m_pMainWnd。它工作正常,但是当我关闭其中一个主窗口时触发断言。此断言来自 CMDIChildWnd:

void CMDIChildWnd::AssertValid() const
{
    CFrameWnd::AssertValid();
    ASSERT(m_hMenuShared == NULL || ::IsMenu(m_hMenuShared));
}

看起来窗口已关闭释放共享菜单。我试图找出在MFC 框架中发布菜单的位置,但找不到。有人可以帮帮我吗? 谢谢..

最佳答案

CMultiDocTemplate 类拥有共享菜单的所有权(它在其析构函数中销毁 m_hMenuShared)。

关于c++ - 使用具有多个顶层窗口的 MFC MDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/746879/

相关文章:

c++ - 具有选择排序算法的虚方法函数

C++虚函数重新实现

c++ - 链接来自 2 个不同 MFC 控件的滚动条

c++ - 在mfc中获取combobox的值

mfc - 动态生成标签- MFC

windows - GetDC() 和 BeginPaint() 之间的区别

c++ - 有没有办法将 child *返回到基地*并评估哪个 child *已返回?

c++ - 运算符重载 operator= 使用友元函数

c++ - 指向指针取消引用的指针;编译器要求 '->'

c++ - 如何通过在运行时编辑文件来设置窗口属性?