gpt4 book ai didi

c++ - 如何在保持文档打开的同时关闭 MFC CVIEW

转载 作者:行者123 更新时间:2023-11-28 07:53:07 24 4
gpt4 key购买 nike

我在 MDI 应用程序中打开了一个 MFC CDocument 和关联的 CView。我想分离并关闭 View (和关联的框架),同时保持文档打开。查看 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++。

最佳答案

如果您将 CDocument::m_bAutoDelete 设置为 FALSE(在创建文档之后),则在最后一个 View 关闭时不应删除该文档。

我不确定您具体要做什么,但您可能想考虑创建一个单独的“数据”对象,该对象可以附加到文档,而不是试图保留文档本身。

关于c++ - 如何在保持文档打开的同时关闭 MFC CVIEW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13305907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com