友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VC语言6.0程序设计从入门到精通-第72章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






       int m_nType;  



  



       CSampleData();  



       virtual ~CSampleData();  



         



       //定义串行化的宏  



       DECLARE_SERIAL(CSampleData)  



         



       // 串行化虚函数  



       virtual void Serialize(CArchive &ar);  



};  



2 .CSampleData 类的实现  



具体代码如下:  



//实现串行化的宏  



IMPLEMENT_SERIAL(CSampleData; CObject; 0)  



  



//初始化  



CSampleData::CSampleData()  



{  



       m_nType=0;  



       m_strName=〃〃;  



}  



  



CSampleData::~CSampleData()  



{  



  



}  



  



// 串行化函数  



void CSampleData::Serialize(CArchive &ar)  



{  



       //基类的串行化  



       CObject::Serialize(ar);  



       if (ar。IsStoring())  



       {  



              //存储数据  



              arm_strName;  



              }  



       }  



       3 .CSampleDoc 类的声明  



       具体代码如下:  



       class CSampleDoc : public CDocument  



        {  



       protected: // create from serialization only  



              CSampleDoc();  



              DECLARE_DYNCREATE(CSampleDoc)  



         



       // Attributes  



       public:  



         



       // Operations  



       public:  



         



       // Overrides  



              // ClassWizard generated virtual function overrides  



              //{{AFX_VIRTUAL(CSampleDoc)  



              public:  



              virtual BOOL OnNewDocument();  



              virtual void Serialize(CArchive& ar);  



              //}}AFX_VIRTUAL  



         



       // Implementation  



       public:  



              CSampleData *m_pData;                       //这里加入自定义文档数据  



         



              virtual ~CSampleDoc();  



       #ifdef _DEBUG  



              virtual void AssertValid() const;  



              virtual void Dump(CDumpContext& dc) const;  



       #endif  



         



 ·184 ·  


…………………………………………………………Page 196……………………………………………………………

                                                                                                              第 8 章    文件操作  



protected:  



  



// Generated message map functions  



protected:  



       //{{AFX_MSG(CSampleDoc)  



              // NOTE the ClassWizard will add and remove member functions here。  



              //        DO NOT EDIT what you see in these blocks of generated code !  



       //}}AFX_MSG  



       DECLARE_MESSAGE_MAP()  



};  



4 .CSampleDoc 类的实现  



具体代码如下:  



CSampleDoc::CSampleDoc()  



{  



       // TODO: add one…time construction code here  



       //  初始化数据  



       m_pData=NULL;  



}  



  



CSampleDoc::~CSampleDoc()  



{  



}  



  



BOOL CSampleDoc::OnNewDocument()  



{  



       if (!CDocument::OnNewDocument())  



              return FALSE;  



  



       // TODO: add reinitialization code here  



       // (SDI documents will reuse this document)  



       //创建新的文档数据  



       if (m_pData!=NULL) delete m_pData;  



       m_pData=new CSampleData;  



       CString m_str;  



         



       return TRUE;  



}  



  



  



                                                                                                                            ·185 ·  


…………………………………………………………Page 197……………………………………………………………

Visual C++ 6。0 程序设计从入门到精通  



       



      /////////////////////////////////////////////////////////////////////////////  



      // CSampleDoc serialization  



      // CSampleDoc 的串行化函数  



      void CSampleDoc::Serialize(CArchive& ar)  



      {  



           if (ar。IsStoring())  



           {  



                 // TODO: add storing code here  



                 //保存 m_pData  



                 arm_pData;  



           }  



      }  



8。2    文件 CFile 类  



      在  8。1 节中介绍了如何在文档视图应用程序中加入串行化并进行文件的保存和打开。这 

种串行化方法也有诸多局限,不能实现灵活的文件访问。当程序需要自定义文件操作时,就 

需要用到 CFile 类。在 MFC 中,CFile 类处理正常的文件 I/O 操作。CFile 类提供通用二进制 

文件操作的接口,是所有 MFC 文件操作类的基础,串行化也是最终通过 CFile 类进行文件处 

理的。本节将用多个示例介绍 CFile 类的使用方法,并提供 CFile 类中各种函数的使用参考。  



      实例 8…1:个人信息录入实例。源代码在光盘中“08实例 8…1PersonData”目录下。  



      PersonData 示例运行界面如图 8…1 所示。该示例是一个基于对话框的 MFC 应用程序。运 

行时先提示程序用户选择个人信息数据文件,比如 PersonData 工程目录下的 test。dat 。打开数 

据文件后就进入如图 8…1 所示的界面。在这个界面里左侧的列表框可以添加、删除和选择个 

人信息的条目 。当选择定某个人名时,在右侧的“个人信息”栏中显示个人信息的具体内容。 

如果要修改某个条目的个人信息,则可以直接编辑对话框右侧的具体内容,然后单击“更新” 
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!