使用具有多个***窗口的 MFC MDI
Posted
技术标签:
【中文标题】使用具有多个***窗口的 MFC MDI【英文标题】:Using MFC MDI with multiple top level window 【发布时间】:2009-04-14 09:33:46 【问题描述】:我正在使用多个*** Windows 应用程序。主窗口是一个MDIFrameWnd,我在CWinApp中放了一些代码来切换***窗口时切换m_pMainWnd。它工作正常,但是当我关闭一个主窗口时会触发一个断言。此断言来自 CMDIChildWnd:
void CMDIChildWnd::AssertValid() const
CFrameWnd::AssertValid();
ASSERT(m_hMenuShared == NULL || ::IsMenu(m_hMenuShared));
看起来窗口关闭释放共享菜单。我试图找出菜单在MFC框架中的发布位置,但找不到。有人可以帮我吗? 谢谢..
【问题讨论】:
【参考方案1】:CMultiDocTemplate 类拥有共享菜单的所有权(它在其析构函数中破坏了 m_hMenuShared)。
【讨论】:
【参考方案2】:我发现问题是。主框架中的菜单栏控件将破坏其 dtor 中的菜单。谢谢大家。
【讨论】:
以上是关于使用具有多个***窗口的 MFC MDI的主要内容,如果未能解决你的问题,请参考以下文章