使用具有多个顶级窗口的MFC MDI

时间:2009-04-14 09:33:47

标签: c++ mfc

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

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

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

2 个答案:

答案 0 :(得分:1)

CMultiDocTemplate类拥有共享菜单的所有权(它会破坏它的析构函数中的m_hMenuShared)。

答案 1 :(得分:1)

我发现问题是。主框架中的菜单栏控件将破坏其dtor中的菜单。谢谢大家。