字体
第(3/5)页
关灯
   存书签 书架管理 返回目录
函数用于在未销毁文档对象时删除文档数据。原型为:

    virtual void DeleteContents( );

    枫叶文学网www.fywxw.com

    第8 章 文件cāo作

    ·177·

    (7)ReleaseFile()

    该虚函数用于释放文件以允许其他应用程序使用。原型为:

    virtual void ReleaseFile(

    CFile* pFile,

    BOOL bAbort

    );

    ? 参数pFile:要释放的CFile 对象。

    ? 参数bAbort:指定用什么方法释放对象,若取值为TRUE,则用CFile::Abort(),反之

    用CFile::Close()。

    (8)SaveModified()

    该虚函数用于查询文档的修改状态并存储修改的文档。原型为:

    virtual BOOL SaveModified( );

    ? 函数返回值:函数是否成功的标志。

    8.1.2 Serialize()函数

    在8.1.1 节中介绍了文档的主要结构,本小节将讲述如何创建和使用文档与磁盘文件之

    间的串行化读写通道,即Serialize()函数。

    1.串行化的基本概念

    串行化在面向对象程序设计领域中的基本概念是指对象可以被持续,即当程序退出时,

    它们可以被保存在磁盘中,而当程序重新运行时又可以从磁盘中读取恢复。对象的这种保存

    和恢复的过程就称为“串行化”。在MFC 中,对象串行化的成员函数称为Serialize()成员函

    数。这个函数提供了将类的数据进行存盘和读取的功能。

    在MFC 中,串行化过程是顺序的,即与文档相关的所有对象只能在某个单独的文件中

    进行顺序的读或写,而并不能进行随机的访问。MFC 的文档类中就只提供了顺序保存和读写

    文档数据的功能。

    2.将类串行化

    将类串行化需要进行下列几个步骤:

    (1)从CObject 派生

    在 CObject 类中定义了基本的序列化协议和功能,需要串行化的类必须直接或间接地从

    CObject 类派生,从而获得对CObject 的序列化协议及功能的访问权限。

    (2)添加DECLARE_SERIAL()宏

    设置好基类后,在类的声明中添加一个DECLARE_SERIAL()宏,具体代码如下:

    class CSample : public CObject //由CObject 派生

    {

    public:

    ??//其他成员变量和成员函数的定义

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·178·

    DECLARE_SERIAL(CSample) //声明串行化,参数为该类的类名

    ??//其他成员变量和成员函数的定义

    };

    (3)添加IMPLEMENT_SERIAL()宏

    在类的实现文件中添加IMPLEMENT_SERIAL()宏,具体代码如下:

上一页 目录 下一页