用一行代码关闭未使用的 MDI 文档





3.00/5 (2投票s)
这段代码在 MFC MDI 应用程序中打开现有文件时,会关闭默认的“空白”文档。
这段代码在 MFC MDI 应用程序中打开现有文件时,会关闭默认的“空白”文档(这种行为也可以在 Microsoft 的 Word 和 Excel 中看到)。
它适用于从“文件”->“打开...”菜单选项以及从 MRU(最近使用文件)列表中打开的文件。
最重要的是,它只需要在您的应用程序中添加一行代码。
#include "CloseUnusedDocs.h" // STEP #1: INCLUDE HEADER FILE // // // BOOL CYourDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; CCloseUnusedDocs::close_unused_documents(this); // STEP #2: INSERT THIS LINE return TRUE; }
代码的算法是:通过所有文档模板循环遍历所有文档,并关闭符合以下标准的文档:
- 未曾保存(
CDocument::GetPathName()
为空),并且 - 未修改(
CDocument::IsModified()
为零),并且 - 不是我们正在打开的文档(代码中的“this”指针)。
有关更多信息,您可以查看代码(它非常短,并且有相当详细的注释)。