我在 MDI 应用程序中打开了 MFC CDocument 和关联的 CView。我想分离并关闭视图(和关联的框架),同时保持文档打开。查看 MFC 代码以了解它是如何执行的,在 CDocument::OnCloseDocument(); 中显示以下内容
// destroy all frames viewing this document
// the last destroy may destroy us
BOOL bAutoDelete = m_bAutoDelete;
m_bAutoDelete = FALSE; // don't destroy document while closing views
while (!m_viewList.IsEmpty())
{
// get frame attached to the view
CView* pView = (CView*)m_viewList.GetHead();
ASSERT_VALID(pView);
CFrameWnd* pFrame = pView->EnsureParentFrame();
// and close it
PreCloseFrame(pFrame);
pFrame->DestroyWindow();
// will destroy the view as well
}
m_bAutoDelete = bAutoDelete;
我想我可以将它与 CDocument::RemoveView 结合使用。有没有比仅仅提升 MFC 源更好的方法来解决这个问题,这种方法会不会给我带来其他问题或副作用?该项目是VS2010 C++。