第八章 文檔视图结构的高级形式.pptVIP

  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文档。上传文档
查看更多
第八章 文檔视图结构的高级形式

第八章 文档视图结构的高级形式; 在具有文档视图结构的应用程序中,文档数据的初始化、更 新、保存等一般由文档类对象完成;视图类对象则提供表示文 档数据的人机界面。文档类与视图类对各自任务完成的这种相 对独立性与 MFC 应用程序框架带给它们的关联性,造就了文档 视图组合形式的多样性,这给应用程序带来了丰富的特性。本 章将介绍 SDI、MDI 应用程序文档视图组合的多种形式。;8.1 文档视图结构组合的多种形式 8.1.1 MDI 与 SDI 程序的区别 比较 MDI 与 SDI 应用程序的文档视图结构,MDI 应用程序有以下几个特点: ·可以同时打开多个文档,每个文档有各自的子框架窗口; ·主窗口的菜单可以随着当前激活的文档类型发生变化; ·子框架窗口可以进行布局方式(层叠、平铺)等各项操作; ·子框架窗口可以在 MDI 主窗口区域内定位、改变大小、最大 化和最小化等放置操作,当最大化子框架窗口时,它将占满 MDI 主窗口的全部客户区;;·MDI 不仅可以同时打开多个文档,还可以为每个文档同时建 立多个视图。如果在主框架窗口的 Window 子菜单中选择 New 菜单项功能,就为激活的视图窗口复制一个视图窗口。 其中,文档的子框架窗口在 MDI 主框架窗口客户区中的定位、 改变大小、最大化、最小化和 Window - New 功能都已经成为 MDI 应用程序的标准功能,均在主框架窗口类的基类中已经实现,因此,用户一般无需再增加新的操作。 每个 MDI 应用程序的主框架窗口是 CMDIFrameWnd 类或其派 生类的实例。CMDIFrameWnd 的基类是 CFrameWnd,它除了拥有 CFrameWnd 框架窗口类的全部特性外,还具有下列与 MDI 相关 的特性:; ;·主框架窗口并不直接与一个文档和视图相关联。但它拥有一 个子帧窗口(又称为 MDI 客户窗口),当主框架窗口的控制栏 (包括工具栏、状态栏以及其他控制栏甚至菜单) 显示或隐藏 时,该子帧窗口将重新定位,这一点与 SDI 框架窗口不同。 ·MDI 主框架的客户窗口是 MDI 子框架窗口的直接父窗口,它 负责管理主框架窗口的客户区以及创建子框架窗口。每个 MDI 主框架窗口都有且只有一个 MDI 客户窗口。 MDI 子框架 窗口是 CMDIChildWnd 派生类的实例,CMDIChildWnd 的基类也 是 CFrameWnd,作为视图的框架窗口,相当于 SDI 的主框架 窗口。;·每打开一个文档,框架就自动为文档创建一个子框架窗口, MDI 应用程序负责动态地创建和删除这些子框架窗口; ·在任何时刻,最多只有一个子框架窗口是激活的,MDI 主框 架窗口始终与当前激活子框架窗口相关联,命令消息在传给 MDI 主框架窗口之前首先传送给当前激活的子框架窗口。 ·在没有任何激活的子窗口时,主框架窗口使用与主框架窗口 关联的菜单,当有激活子窗口时,主框架窗口的菜单会自动 被与子框架窗口相关联的菜单所替代。 ·主框架窗口的基类为子框架窗口的层叠或平铺排列和新建子 框架窗口等一些标准窗口管理操作提供了菜单命令的响应操 作,因此一般不需要重新定义这类消息的响应函数。 ;;8.1.2 文档视图的多种组合形式 在 SDI 和 MDI 两种应用程序结构中,文档和视图的组合形式可以有多种。这取决于以什么形式、方式把文档展示出来。其中切分窗口和切换视图是以多种视图形式展示文档内容的常用方式。应用程序中的切分窗口具有以下特点: ·切分窗口一般是定义在 SDI 的主框架窗口或 MDI 的子框架窗 口中,它占据了框架窗口的客户区区域; ·切分窗口将框架窗口客户区划分为若干窗格,每个窗格定义 为一个视图框架,这些窗格中的视图可以是同一视图类的实 例,也可以是不同视图类的实例; ·窗格的划分个数和布局由窗口切分种类和窗格的初始化代码 确定,并可以通过鼠标拖动切分隔离条动态调整;;·切分窗口是由 MFC 的 CSplitterWnd 类对象实现的。切分窗口 的创建是在框架窗口创建之后,视图窗口创建之前完成的; ·切分窗口不是应用程序框架的基本类,一般不参加命令消息 传递过程(即一般不安排消息映射和消息处理),而切分窗 口各窗格中的视图类却是命令消息传递过程中的一部分; ·切分窗口中窗格的一次划分是有限定的,静态切分窗口的窗 格不超过 16X16,而动态切分窗口的窗格不超过 2X2。 切换视图就是在不使用切分窗口的

文档评论(0)

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

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

1亿VIP精品文档

相关文档