⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled-16.txt

📁 mfc 教程
💻 TXT
字号:
用程序可以提供用户希望的向下兼容性。
    如果要编写一个具有MFC可视化模式支持的可串行化类,一般需要两步:
    1.将IMPLEMENTSERIAL宏中的模式号与值VERSIONABLE.SCHEMA相或。
    2.如果从档案加载对象时需要调用  CArchive::  Getobjectschema,则要修改类的  Serialize
        函数,并相应地调整其并行化例程。  Getobjectschema返回要进行并行化对象的模
          式号。
    调用   Getobjectschema时要注意几个规则。首先,只有对象在被并行化时才能调用。其
次,必须在读取档案对象数据之前调用。再者,它只能被调用一次。如果Getobfoctscherna在
调用Serialize前后被调用了两次,则返回一l。
    假定在应用程序的第2版本中,您要修改Cline类,想添加一个成员变量,用来保存线
的颜色。下面是修改后的类的声明:
        class CLine:public C0bject
      2
      DECLARE.SERIAL(CLlne)
        protected:
                CPointITI.-ptFrom;
              CPointLptTo;
            COLORREF。clrLine; // Line color(new in version 2)
        public:
          CLine()  { }
            CLine(CPoint froo, CPoint to, COLORREF color)
                {。ptFrom= from;。ptTo= to;。clrL。ne= color 
          void Serialize(CArchive& ar);
因为线的颜色是持久性属性(也就是说,保存到档案中的红线在读出时依旧是红的。),所以
J动人民”pCh**1*e..】**m1*e,ie匕41中1】1乙ffi.mrfom州111~-m1V.N/二yrgh B6甲4了个LII]--0fL*en
这意味着要把CLine的模式号增加到2。使用原类时按以下方式调用MFC的
IMPLEMENTSERIAL宏:
      IMPLEMENT_SERIAL(CLine, CObDect, l)
但是在修改后的类中,应该这样调用1*PL****T8**1*L:
      IMPLEMENT.SERIAL(CLine,CObject,ZIVERS10NABLE_SCHENA)
更新后的程序在读取CLine对象时,如果对象的模式号是1,MFC也不会发送CArchive异常,
因为模式号中有VERSIONABLE.SCHEMA标志。但是它会了解到:由于模式号从1变为2,
两个模式实际上是不同的。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -