- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本讲主要内容 图形文件的保存与读取 序列化 绘图程序中的数据需要以文件的形式加以保存。在MFC应用程序中一般采用序列化的方法进行文档的读写。 在绘图程序中有许多自定义类,如CLineType、CFill、CLine、CCurve、CRectangle等。为了使一个自定义类的对象具有持久性,必须让自定义类支持序列化。如果要保存的数据是文档派生类的数据成员,那么实现文档的序列化非常简单,只需要对序列化函数Serialize()进行完善。 自定义类的序列化 但如果要让一个自定义类支持序列化,那么数据的存储和读取都要由自定义类自己去完成。 自定义类序列化的前提条件 自定义类可序列化的前提条件是必须直接或间接地从CObject派生,类都带有一个不带参数的构造函数,绘图程序中有关图形的自定义类都满足这两个条件。此外需要完成以下操作: 要使用MFC序列化宏。在类的头文件中包含宏 DECLARE_SERIALIZE;在类的实现文件中包含宏IMPLEMENT_SERIAL; 自定义类序列化的前提条件 自定义类必须重载序列化成员函数Serialize(),使其支持对自定义类的特定数据的序列化。 并且,任何需要序列化的对象都应该在文档派生类中作为数据成员进行声明。 自定义类的序列化 【例10-11】以例10-10的程序为基础,修改MyDrawSystem案例程序,使之具有序列化功能。 【编程步骤】 (1) MyDrawSystem程序中涉及到序列化的自定义类有:线型类CLineType、填充类CFill、直线类CLine、自由曲线类CCurve、矩形类CRectangle。 自定义类的序列化 按照序列化的条件,在上述五个类的声明头文件中添加函数Serialize()的声明和DECLARE_SERIAL 宏。 其使用形式为: DECLARE_SERIAL( class_name ) DECLARE_SERIAL宏包括了DECLARE_DYNAMIC宏 和 DECLARE_DYNCREATE宏所具有的功能。 自定义类的序列化 在上述五个类的实现文件中添加函数Serialize()的实现代码和IMPLEMENT_SERIAL 宏。IMPLEMENT_SERIAL 宏的使用形式如下: IMPLEMENT_SERIAL( class_name, base_class_name, wSchema ) 其中参数wSchema为类对象版本号,使用大于或等于零的整数。如果要使Serialize成员函数能够读取多个版本(即,读取应用程序的不同版本写入的文件),可将VERSIONABLE_SCHEMA值作为IMPLEMENT_SERIAL宏的参数。 自定义类的序列化 以CLine类为例,其头文件代码修改如下。 #include LineType.h class CLine : public CLineType { DECLARE_SERIAL(CLine) public: …… virtual void Serialize(CArchive ar); //重载序列化函数 }; 自定义类的序列化 CLineType类的.cpp文件添加代码如下。 ……//包含命令 IMPLEMENT_SERIAL(CLineType, CObject, 0) void CLineType::Serialize(CArchive ar) { if(ar.IsStoring()) ar m_nType m_nLineWidth m_nLineType m_LineColor; else ar m_nType m_nLineWidth m_nLineType m_LineColor; } 自定义类的序列化 CFill类的.cpp文件添加代码如下。 IMPLEMENT_SERIAL(CFill,CLineType,0) void CFill::Serialize(CArchive ar) { CLineType::Serialize(ar); if(ar.IsStoring()) ar m_nFillPattern m_FillColor; else ar m_nFillPattern m_FillColor; } 自定义类的序列化 CLine类的.cpp文件添加代码如下。 IMPLEMENT_SERIAL(CLine,CLineType, 0) void CLine::Serialize(CArchiv
您可能关注的文档
- 保险业如何在加强和创新社会管理中发挥特殊作用要素.doc
- 第1课:我们班一岁啦-——第三课时说说我们班.ppt
- 保险专业化销售流程概述要素.ppt
- 保险公司四大账户销售逻辑要素.ppt
- 第20讲 聚合物的粘弹性-换白色模版.ppt
- 保险先生谈恋爱与销售流程要素.ppt
- 第20课 新文化运动一2016年修改三稿.ppt
- 第21章 三相异步电动机的起动.ppt
- 第1章美国的经济实力.pptx
- 保育工作在幼儿园一日生活中的实施要素.ppt
- 2025浙江温州市公用事业发展集团有限公司面向高校招聘工作人考前自测高频考点模拟试题必威体育精装版.docx
- 2025年蓬安县财政局下属单位招聘备考题库附答案.docx
- 广安市农业农村局2025年公开遴选市动物卫生监督所工作人员备考题库附答案.docx
- 南昌市劳动保障事务代理中心招聘3名劳务派遣驾驶员参考题库附答案.docx
- 2025浙江绍兴市新昌县机关事业单位招用编外聘用人员36人备考题库必威体育精装版.docx
- 浙江国企招聘-2025嘉兴海盐县城市投资集团有限公司招聘7人笔试备考试题附答案.docx
- 长沙银行2026校园招聘备考题库必威体育精装版.docx
- 2026年度中国地震局事业单位公开招聘备考题库附答案.docx
- 2025福建省晋江圳源环境科技有限责任公司招聘6人模拟试卷附答案.docx
- 浙江国企招聘-2025温州平阳县城发集团下属房开公司招聘5人公笔试备考试题附答案.docx
有哪些信誉好的足球投注网站
文档评论(0)