当前位置:文档之家› 单文档窗口分割视图和普通视图的切换

单文档窗口分割视图和普通视图的切换

科技信息
! 计算机与信息技术 !
SCIENCE & TECHNOLOGY INFORMATION
!""# 年
第 !$ 期
单文档窗口分割视图和普通视图的切换
$!! 上海理工大学机械工程学院
赵田雨 ! 王崇宇 " 中国 上海 "%%&# +"! 即墨市技工学校 山东 青岛
"’’"%%(
摘要 ) 本文介绍了利用 %,*S4K &‘’X\" 编制含有分割视图和普通视图的基于单文档的多视图界面 ! 以及视图之间的视图切换的方法 ’ 实 现了在一个单文档框架中包含分割视图和普通视图 ! 视图切换方便简单 ! 满足了在一个程序中同时用分割视图和普通视图来显示数据 ! 并用一 个实例来详细说明编制的过程 ’ 关键词 ) 单文档 + 分割视图 + 普通视图 + 视图类 + 切换
!"# $%& ’()*+ ,*-. /01 0234/) ,*#. ’.*+5" 67’+3/8+9 E^.O 5-520 ./;06F:72 506=0-11./= - 1:<;.ab.28 ./;20c-72 ./7<:F./= O5<.; b.28O -/F /601-< b.28O 9-O2F 6/ ;^2 *+, 9R %.O:-< &’’ X\"\ ,; -<O6 =.b2O - 8-R 6c O8.;7^./= b.28O\ E^.O 12;^6F 02-<.Q2O ./ - *+, c0-12 ./7<:F./= O5<.; b.28O -/F /601-< b.28OM ;^2 O8.;7^ .O 2-OR -/F 76/b2/.2/;M O-;.Oc.2O ;^2 02d:2O; 6c F.O5<-R./= F-;- :O./= ;^2 O5<.; b.28 -/F /601-< b.28 -; ;^2 O-12 ;.12 ./ - 506=0-1\ 4/F ;^2/ :O2O -/ 2N-15<2 ;6 2N5<-./ ;^2 506=0-11./= 50672OO\ :-; .23<’ )*+,T O5<.; b.28T /601-< b.28T ;^2 b.28 7<-OOT O8.;7^
7<-OO &*5<.;;2F)0-12 Y 5:9<.7 &)0-12@/F _ +C&K4DC?+]B&DC4ECU&*5<.;;2F)0-12V
!"
科技信息
! 计算机Leabharlann 信息技术 !SCIENCE & TECHNOLOGY INFORMATION
!""# 年
第 !$ 期
%&’()*+ ,-%()../01234/567 8)2.&3( 9,-%()../01234/:;7 %2<./*./0+ =>,?@A>BC>--@D>BC@E:; F7 GH 建立新的视图类 ! 在 工 程 中 新 建 一 个 ,I)/JK 派 生 自 ,I)/J 类 " 在 头 文 件 I)/JKHL 中 将 构 造 函 数 由 %2<./*./0 改 为 %&’()* ! 然 后 在 ,I)/JK 的 MN=23J 5,=,O %=,; 函数中添加如下语句 # 8<)0 ,I)/JK++MN=23J5,=,O %=,; P ,=<*&4/N.O %=<* Q D/.=<*&4/N.5;7 %=,RST/U.M&.5$"V$"V $ 这里用来显示文字 $;7 F 接着新建一个 ,1I)/JK 派 生 自 ,1<24I)/J 类 " 建 立 方 法 是 先 点 击菜单栏的 %WNX/2. & 点击 %A/X<&2*/ & 在弹出的对话框中选择 %=)3(<Y &RS %W==B1MACIW>Z &" 点击 %[/J &V 就 插 入 了 一 个 新 的 对 话 框 " 在 对 话 框
动态切分可以让使用者通过拖曳分裂方块的使用 ! 将窗口切分 ’ 但是 ! 动态切分最多只 可 以 将 窗 口 分 裂 为 ! "! 个 子 视 窗 ! 不 能 进 行 混 合分裂视窗 ! 所 有 子 窗 口 的 属 性 和 父 窗 口 都 是 一 样 的 ! 而 且 子 窗 口 的 数据通常来源于同一处 ’ 另一种是静态切分 ! 用到函数 &02-;2*;-;.7UV ! 函数声明如下 )
!! 引言
在编制的应用程序中 ! 用户界面是用户和系统之间最直接的交互 部分 ! 我们利用 %&’’ 来编制应用程序的可视化界面的时候 ! 通常用的 ()& 框架 ! 即基于文档视图的应用程序 " 它 提 供 了 ! 种 文 档 视 图 结 构 ! 一种是 *+, 结构 ! 即单文档视图结构 ! 二是 (+, 结构 ! 即 多 文 档 多 视图结构 " 但是应用 ()& 创建的框架都只有单一类的视图和功能 ! 在 实际应用过程中 ! 它 不 能 满 足 用 户 的 需 要 ! 有 时 需 要 用 户 在 不 同 的 视 图中进行操作 ! 在同一个程序中包含多个视图也是经常遇到的 " 在我 们做的一个项目中 ! 用 到 了 多 视 图 的 情 况 ! 包 含 分 割 视 图 和 多 个 基 于 不同视图类的普通视图 ! 在这里就介绍一下我们在面对这种情况的时 候所用的方法 " 用这种方法实现在一个单文档多视图结构中包含分割 视图 ! 普通视图的操作界面 ! 以及视图之间的切换 "
"! 原理概述
在建立一 个 基 于 单 文 档 的 工 程 之 后 ! 它 会 自 动 创 建 五 个 类 ! 一 个 主框架窗口类 #&(-./)0-12 $3 一个 以 %&! 工 程 名 !455 & 为 名 字 的 类 ! 它 是 主 要 应 用 程 序 类 ’ 一 个 以 (& ! 工 程 名 !+67 & 为 名 字 的 类 ! 它 是 文 档 类 ’ 一 个 以 (& ! 工 程 名 !%.28 & 为 名 字 的 类 ! 它 是 视 图 类 ’ 还 有 一 个 &496:;+<= 类 ! 它是帮助对话框 ’ 单文档界面只有一个文档类 ! 但可以 有多个视图类 ’ 在默认建立的工程中只有一个视图类 ! 因此视图是单 一的视图 ’ 为了要实现多视图 ! 我们就需要在工程中添加新的基于不 同基类的视图类 ! 每个和文档类关联的视图都有一个 76/;06< ,+ ! 这 个 ,+ 是 一 个 整 数 ’ 如 果 只 显 示 一 个 视 图 类 ! 这 个 类 的 76/;06< ,+ 是 4)>?,+@?A4BC?),D*E! 在多视图切换函数 中 切 换 的 时 候 只 要 把 要 显示的视图的 76/;06< ,+ 设置为 4)>?,+@?A4BC?),D*E ! 然后隐藏其 他视图就可以实现窗口的切换 ! 实现还是比较方便的 ’ 切分窗口 的 实 现 要 复 杂 一 点 ! 单 文 档 只 有 一 个 主 框 架 类 ! 如 果 要 分割窗口 ! 就要切 分 主 框 架 ! 使 用 一 般 的 动 态 切 分 和 静 态 切 分 切 分 完 后 ! 主框架窗口就被分割了 ! 显示的时候就只能显示分割窗口 ! 与普通 窗口的切换变得很复杂 ! 并且容易出错 ’ 我们提出一种新的方法 ! 在类 中添加一个新的框架 ! 分割这个框架 ! 然后把它作为一个视图 ! 参与视 图切换 ! 这样就使得分割视图和普通视图的切换变得容易和方便 ’ 窗 口 分 割 我 们 就 要 用 到 &*5<.;;20@/F 类 !&*5<.;;20@/F 像 是 一 种 特殊的框架窗口 ! 每个窗口都被相同的或者不同的视图所填充 ’ 当窗 口被切分后用户还可以使用鼠标移动切分条来调整窗口的相对尺寸 ’ &*5<.;;20@/F 有两种不同的切割窗口的方式 ’ 一是动态切分 ! 用到函数 &02-;2GH ! 函数声明如下 )
中拖入一个静态 文 本 控 件 " 属 性 标 题 改 为 % 这 里 使 用 控 件 &" 然 后 在 属 性里面选择 % 扩展样式 & 选择 % 静态边缘 &’ 完成后点击 (8)/J & 菜单中的 (,(3XXZ)\320 & 弹出一个对话框询问是否新建一个类 " 选择新建一个 类 " 然后写上类名和基类就新建了一个 ,1<24I)/J 类 ’ 同样在头文件 1I)/JKHL 中把构造函数由 %2<./*./0 改为 %&’()*’ 上面两个新建的类用来和 ,-%()../01234/ 类进行切换 " 下面的类 用 来 填 充 在 ,-%()../01234/ 类 中 切 分 出 的 子 窗 口 " 新 建 一 个 ,TI)/J 类 " 派 生 自 ,T2//I)/J " 并 且 在 头 文 件 -.0@]UHL 中 加 入 ^)N*(&0/ _ 3]U*8)/JHLS " 修改头文件 TI)/JHL " 把构造函数由 %2<./*./0 改为 %&’()* ’ 然后新建一 个 ,?I)/J 类 派 生 自 ,()X.I)/J " 修 改 头 文 件 ?I)/JHL " 把 构 造函数由 %2<./*./0 改为 %&’()* ’
相关主题