如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学基本(jīběn)内容/一、文档/视图(shìtú)框架CDocument::UpdateAllViews(…)CDocument::Serialize()该函数一般需要在文档子类中重载voidSXXXDoc::Serialize(CArchive&ar){if(ar.IsStoring()){//向文件(wénjiàn)中写数据(ar<<)}else{//从文件(wénjiàn)中读数据(ar>>)}}视窗类中的OnDraw成员(chéngyuán)函数常用(chánɡyònɡ)视图类相互引用(yǐnyòng)关系文档视图相互作用的典型(diǎnxíng)实例(1)切分窗口(chuāngkǒu)类(2)一档多视二、永久性对象(duìxiàng)与序列化序列化对象(duìxiàng)的序列化例如某类A为永久化类,如果它声明(shēngmíng)为:ClassA:publicCObject{DECLARE_SERIAL(A)//声明(shēngmíng)了序列化private:intm_X,m_Y;…public:A();//缺省的构造函数Serialize(CArchive&ar);//重写序列化虚函数};IMPLEMENT_SERIAL(A,CObject,0)//实现序列化那么在重写的序列化函数Serialize的实现就应该是:A::Serialize(CArchive&ar){if(ar.IsStoring())//存储数据{ar<<m_X;ar<<m_Y;}else//读取数据{ar>>m_Y;ar>>m_X;}}由CArchive对象实现序列化工作CArchive对象重载(zhònɡzǎi)了操作符“<<”和“>>”对原始数据进行序列化(BYTE,WORD,LONG,DWORD,float,double,int,unsignedint,short和char)可序列化对象CString,CTime,CTimeSpan,COleVariant,COleCurreny,COleDateTime,COleDateTimeSpan,CSize,CPoint,CRect,SIZE,POINT和RECT三、CFile类CFile的构造函数CFile打开文件(wénjiàn)的方式其它(qítā)有关函数Write()-将缓冲区的内容写到文件当前的位置使用方法(fāngfǎ):Write(constvoid*lpBuf,UINTnCount)文件定位函数Seek()-文件定位函数,使用方法(fāngfǎ):Seek(LONGlOff,UINTnFrom)SeekToBegin()-移动文件定位指针到文件头SeekToEnd()-移动文件定位指针到文件尾GetLength()-返回DWORD型文件长度SetLength()-设置文件的长度BOOLGetStatus(CFileStatus&rStatus)const;staticBOOLPASCALGetStatus(LPCTSTRlpszFileName,CFileStatus&rStatus);structCFileStatus{CTimem_ctime;//文件(wénjiàn)创建的日期和时间CTimem_mtime;//文件(wénjiàn)最后一次修改的日期和时间CTimem_atime;//文件(wénjiàn)最后一次访问的日期和时间LONGm_size;//文件(wénjiàn)大小BYTEm_attribute;//文件(wénjiàn)属性TCHARm_szFullName[_MAX_PATH];//文件(wénjiàn)名};CFile和CArchive类之间的关联(guānlián)CFiletheFile;theFile.Open(…,CFile::modeWrite);CArchivear(&theFile,CArchive::store);CArchive(CFile*pFile,UINTnMode,intnBufSize=4096,void*lpBuf=NULL);四、不适合(shìhé)情况