CDocument

CObject
 └CCmdTarget
    └CDocument

CDocument类为用户定义的文档类提供了基本的函数功能。文档类表示了通常用于File Open命令打开和使用File Save命令保存的数据。
CDocument支持标准操作,如创建、装载、保存等。框架用CDocument定义的界面来操作文档。
应用可支持多种文档,例如文本文档和工作表。每种类型都有一个相关的文档模板。文档模板指定该类文档所使用的资源(如菜单、图标和加速符号表)。每个文档还含有一个CDocTemplate对象指针。
用户通过与文档相联系的CView对象来与之交互。视图在框架窗口内生成一个文档图象,并解释作用于该文档之上的用户输入。一份文档可以有多个相关的视图,当用户在文档上打开一个窗口时,框架创建一个视图并将其与文档连接。文档模板为每类文档指定了用于显示的视图类型和框架窗口。
文档作为窗口标准命令例程的一部分,接收标准用户界面组件(如FileSave菜单项)的命令。文档在活动视图之后接收命令。如果文档未能处理指定的命令,则将其交给管理它的文档模板。
当文档数据被修改时,各个视图都必须反应这些修改。CDocument提供了UpdateAllViews成员函数为视图通知这些变化。框架在关闭之前会提示用户必须存储修改后的文件。
在一个典型的应用中生成一个文档,必须做到以下几点:
·为每种类型的文档从CDocument中派生一个类。
·添加保存在文档数据的成员变量。
·为阅读和修改文档数据提供成员函数,文档的视图是这些成员函数最重要的用户。
·在文档类中覆盖CObject::Serialize成员函数,从磁盘读取文档数据或将其写入磁盘。
CDocument支持通过邮件发送文档,如果存在邮件支持(MAPI)的话。关于CDocument的更多信息,请参阅联机文档“Visual C++程序员指南”中的“串行化(对象持久化)”,“文档/视图结构主题”和“文档/视图创建”。
#include <afxwin.h>
请参阅:CCmdTarget, CView, CDocTemplate

CDocument类的成员

构造函数
CDocument构造一个CDocument对象

操作
AddView将视图添加到文档中
GetDocTemplate活动描述文档类型的文档模板的指针
GetFirstViewPosition返回文档列表的第一个位置,用作迭代查找的开始
GetNextView通过与文档相联系的文档列表迭代
GetPathName返回文档数据文件的路径名
GetTitle返回文档的标题
IsModified标识文档从最近一次保存以来是否被修改过
RemoveView将视图与文档分离
SetModifiedFlag为文档从最近一次保存以来所作的修改设置标识
SetPathName为文档使用的数据文件设置路径
SetTitle设置文档标题
UpdateAllViews通知所有视图文档已被修改的消息

可覆盖的函数
CanCloseFrame高级函数覆盖。由框架窗口在观察文档之前调用
DeleteContents在清除文档时调用
OnChangedViewList在视图往文档中添加或从其中删除之后调用
OnCloseDocument关闭文档时调用
OnNewDocument创建文档时调用
OnOpenDocument打开已存在的文档时调用
OnSaveDocument保存文档到磁盘时调用
ReportSaveLoadException高级函数覆盖。在由于异常而不能打开或保存时调用
GetFile返回所需要的CFile对象指针
ReleaseFile释放文件使其为其它应用使用
PreCloseFrame在框架窗口关闭之前调用
SaveModified高级函数覆盖。在询问用户是否保存文档时调用

邮件函数
OnFileSendMail发送带有文档的邮件信息
OnUpdateFileSendMail如果存在邮件支持,使Send Mail命令有效