ImageVerifierCode 换一换
格式:PPTX , 页数:26 ,大小:238.97KB ,
资源ID:4245675      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4245675.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(文档视图框架.pptx)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

文档视图框架.pptx

1、文档文档/视图框架视图框架基本内容基本内容n文档文档/视图框架视图框架n序列化序列化nCFilen不适用的情况不适用的情况CCmdTargetCWinThreadCWinAppCWndCFrameWndCObject主要负责初始化、运行和结束应用程序的执行。负责管理操作数据及显示,并接收用户的输入。结论:结论:CFrameWnd派生派生类的负担过重。类的负担过重。一、文档一、文档/视图框架视图框架l也是一种也是一种MVCMVC架构架构ModelDocumentViewViewControllerDocumentTemplatel将数据操作和数据显示、用户界面分离将数据操作和数据显示、用户界面分

2、离l程序每打开一个文件时,创建程序每打开一个文件时,创建3 3个对象:个对象:一个文档对象一个文档对象一个视图对象一个视图对象一个窗口框架对象一个窗口框架对象l由文档模板对象负责管理文档、视图和框架窗由文档模板对象负责管理文档、视图和框架窗体对象。体对象。CDocument:UpdateAllViews()CDocument:Serialize()该函数一般需要在文档子类中重载voidSXXXDoc:Serialize(CArchive&ar)if(ar.IsStoring()/向文件中写数据(ar)文档类的常用成员函数文档类的常用成员函数视窗类中的视窗类中的OnDrawOnDraw成员函数成

3、员函数 每次当视窗需要被重新绘制时,应用程序框架就要每次当视窗需要被重新绘制时,应用程序框架就要调用调用OnDraw函数。函数。驱使程序调用驱使程序调用OnDraw的两个途径:的两个途径:用户改变窗口的尺寸;窗口恢复先前被遮盖的部分;用户改变窗口的尺寸;窗口恢复先前被遮盖的部分;应用程序改变了窗口数据;应用程序改变了窗口数据;程序中调用程序中调用Invalidate(或者或者InvalidateRect),),通知通知Windows调用调用OnDraw函数函数常用视图类常用视图类CScrollView:提供自动滚动或缩放功能。提供自动滚动或缩放功能。CFormView:由对话框模板创建,并具有

4、和对话框:由对话框模板创建,并具有和对话框一样的设计方法。一样的设计方法。CRecordView:提供表单视图直接与:提供表单视图直接与ODBC记录集记录集对象关联;和所有的表单视图一样,对象关联;和所有的表单视图一样,CRecordView也是基于对话框模板设计的。也是基于对话框模板设计的。CEditView:提供包含编辑控件的视图:提供包含编辑控件的视图CRichEditView:提供包含复合编辑控件的视图:提供包含复合编辑控件的视图CListView:提供包含列表控件的视图。:提供包含列表控件的视图。CTreeView:提供包含树状控件的视图。:提供包含树状控件的视图。相互引用关系相互引

5、用关系n nCDocumentCDocument 有一个成员变量有一个成员变量 CDocTemplate*CDocTemplate*m_pDocTemplatem_pDocTemplate,用于回指其用于回指其DocumentDocument TemplateTemplate;另有一另有一个成员变量个成员变量 CPtrList m_viewListCPtrList m_viewList,表示它可以同时维护一系表示它可以同时维护一系列的列的 ViewsViews。n nCFrameWndCFrameWnd有一个成员变量有一个成员变量CView*m_pViewActiveCView*m_pView

6、Active ,指向指向目前正作用中的目前正作用中的ViewView。n n亦可用亦可用CFrameWnd:GetActiveView()CFrameWnd:GetActiveView()获得视图对象指针获得视图对象指针n nCFrameWnd:GetActiveDocument()CFrameWnd:GetActiveDocument()获得当前活动的文档对象获得当前活动的文档对象指针。指针。n nCViewCView有一个成员变量有一个成员变量 CDocument*m_pDocumentCDocument*m_pDocument,指向相指向相关的文档关的文档 DocumentDocumen

7、t。n nCWnd:GetParentFrameCWnd:GetParentFrame可实现从视图类中获取主框架指针。可实现从视图类中获取主框架指针。文档视图相互作用的典型实例文档视图相互作用的典型实例n切分窗口切分窗口n静态切分:窗口第一次被创建时,窗格就已静态切分:窗口第一次被创建时,窗格就已经被切分好了。最大窗格数目为经被切分好了。最大窗格数目为16161616。n动态切分:允许用户在任何时候对窗口进行动态切分:允许用户在任何时候对窗口进行切分。最大窗格数目为切分。最大窗格数目为2222。n n举例:举例:举例:举例:GraphGraphn一档多视一档多视n n举例:举例:举例:举例:R

8、ectRect(1 1)切分窗口类)切分窗口类n nBOOL Create(CWnd*pParentWnd,int nMaxRows,int nMaxCols,SIZE sizeMin,CCreateContext*pContext,DWORD dwStyle=WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|SPLS_DYNAMIC_SPLIT,UINT nID=AFX_IDW_PANE_FIRST);n nBOOL CreateStatic(CWnd*pParentWnd,int nRows,int nCols,DWORD dwStyle=WS_CHILD

9、WS_VISIBLE,UINT nID=AFX_IDW_PANE_FIRST);(2 2)一档多视)一档多视MFCMFC对于对于“一档多视一档多视”提供下列三个模式:提供下列三个模式:1 1)在各自)在各自MDIMDI文档窗口中包含同一个视图类文档窗口中包含同一个视图类的多个视图对象。的多个视图对象。2 2)在同一个文档窗口中包含同一个视图类的)在同一个文档窗口中包含同一个视图类的多个视图对象(即切分窗口运用于多个视图对象(即切分窗口运用于SDISDI)3 3)在单独一个文档窗口中包含不同视图类的)在单独一个文档窗口中包含不同视图类的多个视图对象。(例如,同一个文档可同时多个视图对象。(例如

10、同一个文档可同时有文字显示方式及图形显示方式的视图)。有文字显示方式及图形显示方式的视图)。二、永久性对象与序列化二、永久性对象与序列化l内存中的对象可以被以文件内存中的对象可以被以文件的形式存储在永久性存储的形式存储在永久性存储介质中,而当应用程序把介质中,而当应用程序把它再从永久性存储介质读它再从永久性存储介质读入后,如果该对象在内存入后,如果该对象在内存中能恢复为原来的状态,中能恢复为原来的状态,那么这种对象就叫做那么这种对象就叫做永久永久性对象性对象。在面向对象理论。在面向对象理论中,能中,能使对象成为永久性使对象成为永久性对象的机制叫做序列化对象的机制叫做序列化 。磁盘磁盘对象在内

11、存中的存储格式转换为文件的格式内存中的对象内存中的对象把文件的格式恢复为内存中的存储格式l所谓永久性对象,就是这种对象具有这样一种能所谓永久性对象,就是这种对象具有这样一种能力:它提供了一套描述自身的信息(例如对象的力:它提供了一套描述自身的信息(例如对象的类名称及数据在内存中的存储格式等)。当应用类名称及数据在内存中的存储格式等)。当应用程序存储对象时,应用程序可以把这些信息与对程序存储对象时,应用程序可以把这些信息与对象的数据成员一起打包形成文件,存入永久性存象的数据成员一起打包形成文件,存入永久性存储体,而当再将它读入内存时,根据该文件中提储体,而当再将它读入内存时,根据该文件中提供的信

12、息,可以把数据按原样组织起来,从而把供的信息,可以把数据按原样组织起来,从而把对象原原本本恢复出来。对象原原本本恢复出来。l使一个类的对象可以是永久性对象,那么在声明使一个类的对象可以是永久性对象,那么在声明这个类的时候必须使用这个类的时候必须使用MFCMFC定义的两个宏:定义的两个宏:DECLARE_SERIALIMPLEMENT_SERIAL序列化序列化1 1、从、从CObjectCObject派生而来,即拥有了派生而来,即拥有了RTTIRTTI,动动态创建等机制态创建等机制2 2、在类声明中必须有、在类声明中必须有DECLARE_SERIALDECLARE_SERIAL宏宏3 3、在类实

13、现中必须有、在类实现中必须有IMPLEMENT_SERIALIMPLEMENT_SERIAL宏宏4 4、重载、重载SerializeSerialize虚函数,使它能够适当的虚函数,使它能够适当的把类别的成员变量写入文件中。把类别的成员变量写入文件中。5 5、该类必须有一个缺省的构造函数。、该类必须有一个缺省的构造函数。对象的序列化对象的序列化例如某类例如某类A为永久化类,如果它声明为:为永久化类,如果它声明为:ClassA:publicCObjectDECLARE_SERIAL(A)/声明了序列化声明了序列化private:intm_X,m_Y;public:A();/缺省的构造函数缺省的构造

14、函数Serialize(CArchive&ar);/重写序列化虚函数重写序列化虚函数;IMPLEMENT_SERIAL(A,CObject,0)/实现序列化实现序列化那么在重写的序列化函数那么在重写的序列化函数Serialize的实现就应该是:的实现就应该是:A:Serialize(CArchive&ar)if(ar.IsStoring()/存储数据存储数据arm_X;arm_Y;arm_X;l由由CArchive对象实现序列化工作对象实现序列化工作CArchive对象重载了操作符对象重载了操作符“”对原始数据进行序列化对原始数据进行序列化(BYTE,WORD,LONG,DWORD,float

15、double,int,unsignedint,short和char)l可序列化对象可序列化对象CString,CTime,CTimeSpan,COleVariant,COleCurreny,COleDateTime,COleDateTimeSpan,CSize,CPoint,CRect,SIZE,POINT和RECT三、CFile类类n n计算机的各种应用程序、文档和各种图形计算机的各种应用程序、文档和各种图形是以文件的形式组织的是以文件的形式组织的n n文件是一块存储区域,可以包含任何以二文件是一块存储区域,可以包含任何以二进制或文本方式记录的信息进制或文本方式记录的信息n nCFile类

16、是类是MFC中文件操作的基类,支持二中文件操作的基类,支持二进制文件,其派生类支持文本文件和内存进制文件,其派生类支持文本文件和内存文件文件n n文件操作一般是在构造函数中打开,在析文件操作一般是在构造函数中打开,在析构函数中关闭构函数中关闭CFile的构造函数lCFile的构造函数有三种类型:的构造函数有三种类型:1.CFile:CFile();仅仅有一个文件句柄,需要手工打开、关闭2.CFile:CFile(inthFile);给出文件句柄,需要手工关闭文件3.CFile:CFile(LPCTSRlPszFileName,UINTnOpenFlags);最完整的构造函数,相当于缺省构造函数

17、加上CFile:Open函数例如:例如:Char*pFileName=“test.dat”;CFile(pFileName,CFile:modeCreate|CFile:modeWrite);CFile打开文件的方式打开文件的方式CFile:modeCreate创建方式打开文件,如文件已存在则长度设置为0CFile:modeNoTruncate创建文件时如文件已存在不对其进行截断CFile:modeRead只读方式打开文件CFile:modeReadWrite读写方式打开文件CFile:modeWrite写入方式打开文件CFile:shareCompat在使用过程中允许其他进程同时打开文件CF

18、ile:shareDenyNone在使用过程中允许其他进程对文件进行读写CFile:shareDenyRead在使用过程中不允许其他进程对文件进行读取CFile:shareDenyWrite在使用过程中不允许其他进程对文件进行写入CFile:shareExclusive取消对其他进程的所有访问CFile:typeBinary设置文件为二进制模式CFile:typeText设置文件为文本模式其它有关函数其它有关函数1.Abort()关闭文件及CFile对象,无视任何警告与错误2.Open()打开文件,若成功返回非零值3.Close()关闭文件,禁止其它的读写操作,关闭后m_hFile的值为NUL

19、Ll输入输出函数输入输出函数1.Read()将文件中的数据读入缓冲区使用方法:Read(void*lpBuf,UINTncount)2.Write()将缓冲区的内容写到文件当前的位置使用方法:Write(constvoid*lpBuf,UINTnCount)l文件定位函数文件定位函数1.Seek()文件定位函数,使用方法:Seek(LONGlOff,UINTnFrom)2.SeekToBegin()移动文件定位指针到文件头3.SeekToEnd()移动文件定位指针到文件尾4.GetLength()返回DWORD型文件长度5.SetLength()设置文件的长度CFile:beginCFile:

20、beginCFile:currentCFile:currentCFile:endCFile:endBOOLGetStatus(CFileStatus&rStatus)const;staticBOOLPASCALGetStatus(LPCTSTRlpszFileName,CFileStatus&rStatus);structCFileStatusCTimem_ctime;/文件创建的日期和时间CTimem_mtime;/文件最后一次修改的日期和时间CTimem_atime;/文件最后一次访问的日期和时间LONGm_size;/文件大小BYTE m_attribute;/文件属性TCHARm_sz

21、FullName_MAX_PATH;/文件名;n 获取文件的有关信息获取文件的有关信息nCFile和和CArchive类之间的关联类之间的关联CFiletheFile;theFile.Open(,CFile:modeWrite);CArchivear(&theFile,CArchive:store);CArchive(CFile*pFile,UINTnMode,intnBufSize=4096,void*lpBuf=NULL);四、不适合情况不适合情况(1 1)不是面向数据的应用或数据量很少的)不是面向数据的应用或数据量很少的应用程序应用程序例如:磁盘扫描程序、时钟程序等。例如:磁盘扫描程序、时钟程序等。(2 2)不使用标准的窗口用户界面的程序)不使用标准的窗口用户界面的程序例如:游戏等。例如:游戏等。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服