第10章 文档视图结构的应用程序开发【荐】.pptVIP

第10章 文档视图结构的应用程序开发【荐】.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 文档/视图结构的应用程序开发 文档/视图结构是在Visual C++中,使用MFC开发基于文档应用程序的基本框架。在这个框架中,数据的维护及其显示是分别由两个不同,但又彼此紧密相关的对象——文档和视图负责的。 本章将主要围绕这一结构的各个环节展开讨论,因为理解这一结构的原理和机制对基于文档/视结构的MFC应用开发具有重要作用。 10.1 文档/视图结构 在本书的第2章中,已经简单介绍了文档/视图结构的基本概念,可以把文档看作是数据容器,而视图则可以看作是查看数据的窗口或是和数据发生交互的窗口。本节对MFC中,文档/视图结构的概念及其应用作进一步介绍。 10.1.1 文档/视图结构概述 MFC文档/视结构是一种新型的应用程序结构,它的优点主要包括:实现了数据存储和显示的分离、提供了常用的标准操作界面以及支持打印预览功能等。一般情况下,采用文档/视结构的应用程序至少应由以下对象组成:应用程序对象(一般为CWinApp派生对象)、框架窗口对象(一般为CFrmeWnd派生对象)、文档对象(一般为CDocument派生对象)、视图对象(一般为CView派生对象)等。 10.1.2 文档/视图结构的分类 有两种类型的文档视结构程序:单文档界面(SDI)应用程序和多文档界面(MDI)应用程序。 10.2 文档/视图结构应用程序框架分析 正如前面章节的实例开发所介绍的,使用AppWizard可以方便地创建文档/视图结构框架应用程序。本节将主要分析一下单文档应用程序框架的创建过程、结构和工作机制。 10.2.1 利用AppWizard创建单文档程序框架 使用AppWizard创建单文档程序框架在前面实例中多次用到,其各向导选项采用的是默认设置,本节将详细介绍各向导对话框中选项的含义。 10.2.2 程序框架中的主要类及相互关系 文档/视图结构的应用程序框架中,主要包含5个类:CWinApp类、CFrameWnd类、CView类、CDocument类和CDocTemplate类。 10.2.3 文档类、视图类核心函数及作用 MFC在CDocument类和CView类中提供了一些相对比较重要的函数,它们负责完成二者之间的通信或者为各自提供独立的服务。 CDocument对象负责读入、保存和管理应用程序的数据。文档类允许向其中增加数据成员,其数据可以是任何类型的,如结构体,类或链表等。 10.2.4 新建、保存和打开的实现 在文档/视图结构的应用程序框架中,默认生成了“文件”下拉菜单,其中“新建”、“保存”和“打开”菜单命令项,系统自动生成了菜单命令的响应流程。 10.2.5 多文档应用程序框架 多文档界面应用程序简称MDI(Multiple Document Interface),它允许有多个文档类、视图类和多个文档模板CMultiDocTemplate存在,即可以建立多种文档——视图——子框架窗口的关系。运行时允许打开多个MDI子框架窗口,拥有各自的文档和视图对象。(具体内容请参照本书) 10.3 文档/视图结构应用程序的开发 本节将开发一个典型的文档/视图结构的绘图程序实例工程,通过实例,讲解有关视图对象和文档对象的具体开发过程和方法。 10.3.1 实现目标 本实例要创建一个单文档绘图程序,通过菜单或者工具栏按钮可以选择绘制直线、矩形和椭圆功能,而后通过鼠标操作实现在客户窗口的绘图。其绘图过程与Windows系统提供的绘图程序相似:单击鼠标左键作为绘图起点,拖动鼠标实现实时图形显示,是否鼠标左键后完成绘图操作。 在实现基本功能的基础上,进一步完善程序,实现诸如存档、滚动视图窗口等操作。 10.3.2 创建基本的程序框架 本节实现单文档界面程序框架的创建,并添加必要的菜单和工具栏资源。 10.3.3 创建文档数据 最终用户在客户区绘制图形的数据是在文档类中通过一个链表来记录的。首先定义一个全局的数据结构CGraph,用以记录图形相关的数据。 (具体内容请参照本书) 10.3.4 在视图类中实现绘图操作 在本书的第5章介绍鼠标编程时,其实例也实现了简单的绘图操作,但是由于其绘制过程在OnDraw函数中实现,因此无法实现窗口的重绘。而本实例中,所有的绘图操作均在CCh10Demo3View类的OnDraw函数中完成。 10.3.5 文档的序列化 序列化是将数据从应用程序写入数据文件或从数据文件读入应用程序的过程。序列化在文档/视图结构中完成,当用户要保存或读出数据时发生序列化过程,当文档数据发生变化时,序列化会提示用户保存数据。 10.3.6 对例程数据进行序列化 在本节,实现对“Ch10Demo3”工程绘制的图形对象能够进行存盘操作。(具体内容请参照本书) 10.3.7 让文档视结构程序支持滚动条 在前面实现的

文档评论(0)

wulf + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档