《Visual_C++程序设计教程》第七章框架窗口、和视图.pptVIP

《Visual_C++程序设计教程》第七章框架窗口、和视图.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文档。上传文档
查看更多
《Visual_C程序设计教程》第七章框架窗口、和视图

第7章 框架窗口、文档和视图 7.1 应用程序组成结构 2.多文档应用程序(Multiple Document Interface,MDI) 在多文档界面应用程序中,允许同时操作多个文档,如Microsoft Word。可以打开多个文件(同时也就为每个文件打开一个窗口),可以通过切换活动窗口激活相应的文档进行编辑。多文档应用程序也提供一个“文件”菜单,用于新建、打开、保存文档。与单文档应用程序不同的是,它往往还提供一个“关闭”菜单项,用于关闭当前打开的文档。多文档应用程序还提供一个“窗口”菜单,管理所有打开的子窗口,包括对子窗口的新建、关闭、层叠、平铺等。关闭一个窗口时,窗口内的文档也被自动关闭。 3.基于对话框的应用程序(Dialog based Application) 基于对话框的应用程序非常简单,由应用程序类、对话框类(可以作为其它控件的容器)构成。它的生命周期可概括为:通过应用程序类的InitInstance()函数,构造一个模式对话框对象;调用DoModal函数,让基于对话框的应用程序像对待普通对话框一样接收和分配消息;用户退出对话框后,程序也就随之结束。常见的基于对话框的应用程序有计算器等(以对话框为容器布局的程序)。 7.1.1 CMainFrame类和窗口 MFC应用程序主要由3部分组成:窗口、文档和视图。其中窗口是整个应用程序的载体,也是应用程序不可缺少的部分。 窗口也叫框架窗口,它可以分为两类:一类是主框架窗口(也叫主窗口),另一类是子框架窗口(也叫子窗口)。在MFC应用程序中,框架(Framework)是应用程序所应具备的软件模块按一定的结构组成的集合。框架窗口可以理解为框架的可视化显示形式。 主框架窗口是应用程序放置在桌面(DeskTop)上的那个窗口,每个应用程序只能有一个主窗口,主窗口的标题栏上通常显示应用程序的名称。子框架窗口是应用程序主框架窗口内的子窗口,它占据了主框架窗口客户区的部分或全部。视图是子框架窗口内的子窗口,它占据了子框架窗口客户区的部分或全部。 图7-1标明了多文档应用程序中主框架窗口、子框架窗口和视图之间的关系。由于单文档应用程序没有子框架窗口,所以可以认为视图充满了整个主框架窗口。 使用MFC AppWizard创建单文档应用程序后,包含主框架窗口类的文件分别为MainFrm.h和MainFrm.cpp。主框架窗口类是由CFrameWnd派生而来的,类名为CMainFrame。而对于多文档应用程序,主框架窗口由CMDIFrameWnd派生。 CMainFrame类有4个重要的函数:AssertValid、Dump、OnCreate和PreCreateWindow。这4个函数都是由应用程序向导自动声明和定义的,无须人为干预,不过了解它们的作用还是非常有必要的,在需要的情况下,用户还可以修改它们以达到预定效果。它们各自的功能如下: (1)AssertValid 函数用来诊断CMainFrame对象的有效性。 (2)Dump 函数用来输出CMainFrame对象的状态信息。 (3)OnCreate 函数用来创建工具栏m_wndToolBar和状态栏m_wndStatusBar,而在视图窗口中是由基类CFrameWnd的成员函数OnCreate通过调用OnCreateClient函数创建的。 (4)PreCreateWindow 函数是一个虚函数。如果要创建一个非默认风格的窗口,可以重载这个函数,在函数中通过修改Createstruct结构参数来改变窗口类、窗口风格、窗口大小和位置等。 7.1.2 CDocument类和文档 CDocument类是CCmdTarget类的派生类,其派生关系如图74所示。CDocument类为用户定义的文档类提供了基本的函数功能,它支持标准操作,如创建、装载、保存等。一个应用程序可以支持多种类型的文档,每种类型的文档都通过一个文档模板对象建立与各自视图的联系。 不论是SDI应用程序还是MDI应用程序,文档类都是从CDocument类派生出来的。在文档/视图结构中,文档类的主要任务通常是对数据进行管理和维护,数据将保存在文档类的成员变量中,视图通过对这些变量的访问来获取或返回数据,并能通过这种方式来更新并显示数据。 从CDocument类派生文档类的步骤如下: (1)为每一个文档类型从 CDocument类(当然也可以是其他 CDocument类的派生类)派生一个相应的文档类。 (2)为文档类添加成员变量。这些成员变量用来保存文档的数据,其他对象(如与文档相关联的视图)直接或间接地访问这些成员变量以读取或更新文档的数据。 (3)重载Serialize成员函数,实现文档数据的序列化。 7.1.3 CView类和视图 CView类是C

文档评论(0)

189****6821 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档