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

📄 untitled-17.txt

📁 mfc 教程
💻 TXT
字号:
    现在工作只做了一半。最后一步是修改CLine::Serialize,使它根据Getobjectschema不
同的返回值并行化Cline。原Serialize函数如下:
      voidCLine::Serialize(CArchive& ar)
      5
        COb〕ect::Serialize(ar);
          。f(ar.Isstor。na(》
                      co<<Ill-- piE工OO<<Ifi,An ptTO;
          e1Se人L0ad土ng,not StO过ng
                  dl>>ITI--PtFY0th>>Ifl,-PtTO;
新函数如下:
      void CLine::Serialize(CArchive&ar)
          COb】ect::Serialize(ar);
          。f(ar.Isstoring())
                  ee<< ITI--ptF<Ofu<< Ifi--ptTO<< 111--CICL工CC;
          else {
                UINT "schema= ar.Getobjectschema();
                sw。tch("schema) 
                    easel:、Versionl CLine
                          ar>> ltl--ptFrom>> m-ptTo;
                      m-clrLine= RGB(0, O, 0); // Default color
                            break;
                    case 2:人Version 2 CLine
                        ar>> ltl---ptFrom>> Tn-ptTo>> ltl--clrLlne;
                            break;
                  default:人 Unknown version
                    AfxThrowArchiveException(CArchiveException::badschema);
                            tireax;
                I
          g
      g
    明白它是怎样工作的了吗? CLine对象写到档案上时,它的格式总是CLine的第2个版
本。但是读取 CLine时,根据 Getobjectschema返回值的不同,它又被当作 CLine版本回或版
本2读回。如果模式号为1,则对象按老方式读取,并把m_。lrLine设置为默认值。如果模
式号为2,则对象所有数据成员,包括m.clrLine,都要从档案中读取出来。其他模式号会导
致CArchiveException,表示不能识别版本号(如果发生异常,可能是因为程序错了或档案毁坏
了。)如果将来还要修改Cline,则要把模式号增加到3并给新模式添加一个。ase程序段。

⌨️ 快捷键说明

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