它使得对文档的磁盘读写cāo作变得简单易行。本节将详细介
绍串行化的基础知识,包括文档的基本结构、用Serialize()函数实现串行化、与串行化相关的
类,以及在文档视图中添加串行化代码4 个部分。
8.1.1 文档类
在文档视图结构中,文档的任务通常是对数据进行管理和维护。数据一般都被保存在文
档类的成员变量中。而在MFC 中,文档类通过一个称为串行化(Serialize)的过程将数据保
存到磁盘文件中或者将数据从磁盘文件中读取。文档类为数据的串行化提供了默认的支持,
并将其作为可重载函数,只需重载这些成员函数就可以为程序提供自定义的串行化支持。
文档类在文档视图结构中主要完成以下几个任务。
? 在内存中保存应用程序特定的数据,并对其进行管理,同时提供给视图类进行显示。
? 提供用于cāo作文档数据的接口。
? 参与写文件和读文件。通过串行化功能,文档类可以将数据从文件中读出或者写入。
? 参与打印输出。这个任务主要通过视图类访问文档进行。
? 处理跟文档有关的命令消息。这些命令包括菜单项、工具栏按钮或快捷键生成的命令。
默认情况下,文档类使用序列化处理“文件”菜单的“保存”和“另存为”命令。还
可以为其他跟文档相关的自定义命令添加相应的处理函数。
为了完成上述的任务,文档类的基类CDoccomnt 提供了下列一些成员函数。
1.处理文档数据与文件相关的cāo作的函数
(1)GetTitle()和SetTitle()
这两个函数作为一组,前者用于获取文档的标题,后者用于设置文档标题。原型为:
枫叶文学网www.fywxw.com
第8 章 文件cāo作
·175·
const CString& GetTitle( ) const;
virtual void SetTitle(
LPCTSTR lpszTitle
);
(2)GetPathNcom()和SetPathNcom()
这两个函数用于处理文档保存的路径。前者用于获得文档保存路径的字符串,后者设置
该路径。原型为:
const CString& GetPathNcom( ) const;
virtual void SetPathNcom(
LPCTSTR lpszPathNcom,
BOOL bAddToMRU = TRUE
);
参数bAddToMRU 用于确定是否将路径添加到最近打开的文档列表中。
2.GetDocTemplate()
该函数用于获得文档模板对象的指针。原型为:
CDocTemplate* GetDocTemplate( ) const;
3.处理文档类和视图类的关系的函数
(1)AddView()
该函数用于向与文档相关联的视图列表中添加指定的视图。原型为:
void AddView(
CView* pView
);
参数pView 指向