在文档/视图 MFC c++ 中没有视图的文档

Posted

技术标签:

【中文标题】在文档/视图 MFC c++ 中没有视图的文档【英文标题】:Document without a View in Document/View MFC c++ 【发布时间】:2014-03-07 06:50:08 【问题描述】:

我正在使用 Visual Studio 2012 并使用文档/视图架构在 C++ 中创建应用程序。

我想创建一个像 Visual Studio 这样的项目结构。对于没有使用过 Visual Studio 或不清楚我在说什么的人,我将简要概述一下:

使用我的程序的用户可以编辑“页面”,在它们上绘图等。保存时,每个页面都保存到一个单独的文件中。一开始,用户应该能够创建一个“项目”文件。开始时它将是空的。用户将在他/她处理项目时将页面添加到项目中。打开时,用户应该可以选择要打开的项目文件,这将打开他/她的所有页面。一个项目中可以包含不同类型的页面。

我已经让不同页面的部分正常工作。我向 DocTemplate 添加了多个文档。所以当用户点击“新建”时,他/她可以从不同类型的页面中进行选择来创建。

我不确定如何创建“项目”文档。我是否必须像为其他人所做的那样将其添加到 DocTemplate 中?在这种情况下,它总是为我创建一个我不需要的视图。我尝试直接在我的 MainFrame 中创建一个文件并对其进行读/写,但后来我失去了让框架管理我的文档的好功能。例如,我不能让用户选择在“打开文件”对话框中打开该文件。我将不得不创建解决方法,例如有一个特殊的按钮来打开项目文件。

我意识到这更像是一个概念问题。我应该如何将这个“项目”文件集成到 Doc/View 框架中?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

AFAIK 应该可以将 View-Class 留空(NULL/nullptr)。 不需要在Doctemplate中。

要获得对打开对话框的支持,您需要在文档模板中拥有它。

但也许最好让您自己管理您的项目...当您打开一个新项目时,其他文件可能应该关闭...或自动打开。仍然不明白单独的部分是如何与“项目”相关的。

但我认为你必须有管理项目的东西。解决方案资源管理器也是 VS 中项目的视图...

【讨论】:

以上是关于在文档/视图 MFC c++ 中没有视图的文档的主要内容,如果未能解决你的问题,请参考以下文章

MFC 中的文档视图体系结构

MFC 中的文档/视图架构基本上是模型/视图/控制器模式但没有控制器吗?

mfc中MDI模式下实现单文档多视图多窗口

在 C++ MFC 中使用 EnableMDITabbedGroups 时如何保持文档 Tab 键顺序

MDI 应用程序 MFC 中文档的多个视图

关于MFC视图文档框架的理解-1