文档模板和文档/视图创建过程

为了管理创建具有关联视图和框架窗口的文档的复杂过程,框架使用两个文档模板类:用于 SDI 应用程序的 CSingleDocTemplate 和 MDI 应用程序的 CMultiDocTemplate 。 A CSingleDocTemplate 可以一次创建和存储一种类型的一个文档。 保留 CMultiDocTemplate 一种类型的许多打开的文档的列表。

某些应用程序支持多种文档类型。 例如,应用程序可能支持文本文档和图形文档。 在此类应用程序中,当用户在“文件”菜单上选择“新建”命令时,对话框会显示可能打开的新文档类型的列表。 对于每个受支持的文档类型,应用程序使用不同的文档模板对象。 下图演示了支持两种文档类型的 MDI 应用程序的配置,并显示了多个打开的文档。

具有两种文档类型的 MDI 应用程序的示意图。
具有两种文档类型的 MDI 应用程序

文档模板由应用程序对象创建和维护。 在应用程序 InitInstance 函数期间执行的关键任务之一是构造一个或多个适当类型的文档模板。 文档模板创建中介绍了此功能。 应用程序对象在其模板列表中存储指向每个文档模板的指针,并提供用于添加文档模板的接口。

如果需要支持两个或多个文档类型,则必须为每个文档类型添加 对 AddDocTemplate 的额外调用。

根据每个文档模板在应用程序文档模板列表中的位置,为每个文档模板注册图标。 文档模板的顺序由它们通过调用 AddDocTemplate添加的顺序确定。 MFC 假定应用程序中的第一个图标资源是应用程序图标,下一个图标资源是第一个文档图标,依此推。

例如,文档模板是应用程序的三分之三。 如果应用程序中有索引 3 处的图标资源,该图标将用于文档模板。 否则,索引 0 处的图标将用作默认值。

另请参阅

常规 MFC 主题
文档模板创建
文档/视图创建
MFC 对象之间的关系
创建新文档、Windows 和视图