我正在使用多个顶级Windows应用程序。主窗口是MDIFrameWnd,我在CWinApp中放了一些代码,当切换顶级窗口时切换m_pMainWnd。它工作正常,但当我关闭其中一个主窗口时触发断言。该断言来自CMDIChildWnd:
void CMDIChildWnd::AssertValid() const
{
CFrameWnd::AssertValid();
ASSERT(m_hMenuShared == NULL || ::IsMenu(m_hMenuShared));
}
看起来窗口被关闭释放共享菜单。我试图找出在MFC框架中发布菜单的位置,但找不到它。有人能帮帮我吗? 感谢..
答案 0 :(得分:1)
CMultiDocTemplate类拥有共享菜单的所有权(它会破坏它的析构函数中的m_hMenuShared)。
答案 1 :(得分:1)
我发现问题是。主框架中的菜单栏控件将破坏其dtor中的菜单。谢谢大家。