- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章__、视图和框架
第13章 文档、视图和框架 MFC应用程序的核心就是文档/视图结构,该结构能实现数据显示和数据操作的分离。其中文档对象通常代表应用程序已经打开的一个文件,而视图窗口提供了该文档的数据的可视化,并且还可以与用户进行交互。也就是说用户对数据的处理都是由文档对象负责管理,而视图窗口用以显示对数据的访问与更新。 13.1 文档/视图简介 由AppWizard生成的基于单文档或多文档界面的应用程序,通常使用了文档/视图结构,其实现方式是首先为应用程序加载的每一个文件创建应用文档类和一个实例,然后该应用程序使用视图类的一个实例,以允许用户与应用程序以及文档中的数据进行交互,文档和视图关系是一对多的关系,即—个文档可以对应多个视图,例如一个word文档有大纲视图、页向视图和Web版式视图守。但一个视图只能对应—个文档。 13.1.1 文档/视图的基本概念 在MFC应用程序中,文档/视图结构用来将程序的数据本身与数据的显示及用户对数据的交互相隔离,在这种模式下,文档负责管理和维护数据本身,包括从磁盘文件中取出数据或者将已修改的数据保存到磁盘文件中。而视图类则负责从文档类中,而不是直接从存储介质户中将文档中的数据提取出来并显示给用户,然后接受用户的修改,最后将修改的结果反馈给文档类,由文档类将修改的结果保存到磁盘文件中。视图类和文档类的交互是通过文档类中的公共成员变量或成员函数实现的。 13.1.2 两类文档/视图结构分析 在MFC应用程序中,有两种类型的文档/视图结构程序:一种是单文档界面(SDI)应用程序,在该程序中,用户在同一时刻只能操作一个文档;另一种是多文档界面(MDI)应用程序,在该程序中,允许用户同时操作多个文档。 1.SDI应用程序的文档/视图结构 2.MDI应用程序的文档/视图结构 13.2 框架 在MFC应用程序中,文档是真正的数据载体,视图是文档的显示界面,对应同一个文档,可能存在多个视图界面,同时还需要框架来管理这些视图界面。实际上,应用程序实现的视图是一个窗口,但不是框架窗口,而是一个没有自己的菜单的无边界子窗口,因此它必须被某种形式的框架窗口所包MFC把创建的视图窗口放入文档模板构造函数中标识的框架窗口的客户区中。 13.2.1 框架窗口的组成 框架窗口为Windows应用程序的用户界面提供结构框架,它是应用程序的主窗口,负责管理其包容的视图窗口。一个应用程序启动时会创建一个最顶层的框架窗口。 13.2.2 多文档框架类中的常用函数 程序员在编写多文档应用程序时,通常会用到一些多文档框架类中的常用函数,例如利用MDISetMenu()函数来为各文档显示不同的菜单,利用OnCreateClient()函数来创建客户窗口等等,下面就对一些常用函数进行详述。 1.MDISetMenu()函数 2.OnCreateClient()函数 3.GetMDIFrame()函数 13.3 文档 CDocumt类是MFC中负责管理文档的类,用户的文档类一般要从CDocumt类继承。该类封装了用户定义的文档类的基本功能,它支持标准的Windows操作,如建立、打开和保存文档等。 13.3.1 对视图的管理 前面也提到过,在文档/视图结构中,一个文档类可以对应多个视图类,每一个文档都提供了一个指针变量m_viewList,用于保留并维护一个所有相关视图的列表。因此CDocumt类提供了两个成员函数来对这个图像列表进行操作,例如AddView()函数用来把视图对象加入列表中,RemoveView()函数用来从列表中删除一个视图对象。 13.3.2 新建或打开文档 当应用程序启动时,或者选择应用程序上的【File】|【New】命令时,都会调用CDocument类的成员函数OnNewDocument(),来对CDocument类对象的数据成员进行初始化。它是一个虚函数,根据需要可以进行重载。 13.3.3 文档的保存和关闭 在应用程序中,保存文档有两种方式:一种是选择【File】|【Save】命令,另一种是选择【File】|【Save As】命令。两者的差异在于后者会查询文件名,但最终会通过调用CDocument类的成员函数OnSaveDocument()来对文档数据进行存档。 13.4 视图 视图是数据的用户窗口,为用户提供了文档可视的数据显示。它还给用户提供了一个与文档中数据进行交互的界面,把用户的输入转化为对文档中数据的操作。每个文档都会有一个或多个视图显示,但一个视图只能连接到一个文档上。对于给定的文档类型,应用程序可以支持不同类型的视图。例如,Word处理程序既要提供一个文档的完整文本视图,又要提供一个仅显示每节标题的大纲视图。这些不同的视图类型可以放在不同的框架窗口中。 13.4.1 CView类 C
您可能关注的文档
最近下载
- 成人氧气吸入疗法护理-中华护理学会团体标准.pptx VIP
- 2025年1月浙江浙江省普通高校招生信息技术选考真题卷.doc VIP
- 网络与信息安全管理员职业技能竞赛理论考试题及答案 .pdf VIP
- 建筑工程图集 01K403、01(03)K403:风机盘管安装(含2003年局部修改版).pdf VIP
- 工学一体化课程《小型网络管理与维护》任务2单元7教学单元活动方案.docx VIP
- 工学一体化课程《小型网络管理与维护》任务2单元6教学单元活动方案.docx VIP
- 中医护理门诊工作制度、岗位职责、安全管理制度.docx VIP
- 各类工作票和操作票模板.pdf VIP
- 公卫执业医师《学校、儿童少年卫生学必看考点》考试题.doc VIP
- 人工智能时代高职综合英语课程思政的融合与创新.pdf VIP
文档评论(0)