VC15_10多文档界面模型
钟林森A组-超市收银系统设计--软件工程实验报告

计算机科学与技术专业超市收银系统设计组长:钟林森(12计算机2班)组员:王嘉胜(12计算机2班)陈小浪(12计算机1班)刘丽怡(12计算机1班)方洛宣(12计算机2班)姚启航(12计算机1班)佛山科学技术学院计算机系2015年6月目录一 .................................................................................................................. 项目背景2二系统需求.. (4)2.1系统功能需求 (4)2.2系统使用人员 (5)2.3系统使用环境以及开发工具 (6)三系统整体结构设计 (6)四软件部分整体设计 (8)4.1软件功能结构设计 (8)4.2系统的结构设计 (10)4.2.1)..................................................................... 系统概念结构设计 104.2.2).................................................................... 系统逻辑结构设计 114.2.3)系统物理结构设计 (23)六软件主要界面设计 (29)七软件开发平台选择 (30)八软件开发进度计划与开发团队 (31)8.1).................................................................................................软件开发进度表:31 8.2)................................................................................ 项目开发人员组成以及分工32九附:思考题 (33)一项目背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
Delphi编程_界面设计

Font maxFontSize, MinFontSize Option
3.8.3.3 颜色对话框
3.8.3.4 查找对话框
属性 FindText
说明 在设计期用来预设一个待查的字符串,运行期 用来获得欲查的字符串 选项的集合 决定了对话框在屏幕上出现的位置
Options Position
3.8.3.4 查找对话框(续)
• wsMinimized • wsMaximized
3.4 控件的位置(续)
不同分辨率下的窗体位置设计
• 将窗体的Scaled属性设为True
当窗体的PixelsPerInch属性值不同于当前系统时, Delphi将自动改变窗体和窗体内的控件的尺寸。 当窗体的AutoScroll属性为true时,自动改变尺寸不适 用于窗体,只适用于窗体内的控件。
窗体的位置和大小
• • • • • • • • poDesigned poDefault poDefaulPosOnly poDefaulSizeOnly poScreenCenter poDesktopCenter poMainFormCenter poOwnerFormCenter
WindowState属性
界面设计
内容提要
用户界面样式 界面设计一般性原则 光标和帮助提示的用法 状态栏和工具栏等控件的用法 窗口的分割和分页 控件的悬停 多文档界面(MDI)
3.1 用户界面
用户界面是一个应用程序最重要的部分,它是最直 接的现实世界。 设计应用程序时,需要做出有关界面的若干决定。 设计用户界面之前,需要考虑应用程序的用途。 初学者的应用程序,它的设计要求简单明了,而针 对有经验用户可以复杂一些。 用户界面的设计是一个反复过程,很难在第一遍就 能提出一个完美的设计。
VC之Office自动化开发

VC之Office自动化开发去年底老板临时交给一个任务,为一个试验数据管理系统编写一个电子报告生成程序。
因为老板也不怎么重视这个项目(钱少啊,呵呵),所以这个任务只好落在我这种小硕身上了。
我也是两眼瞎,万事从头干。
三个月的苦斗,还算圆满交差。
用VC进行office自动化开发,网上有很多文章,我本不想在此画蛇添足。
只是感于自己查资料时的苦痛,所以就厚着脸皮把一些心得拿出来见见阳光,有一些技术还是自己摸索出来的。
最后,office自动化开发与我专业无丁点关系,希望此文不至于太班门弄斧让你看得难堪,如果尚有所帮助,那真是不胜荣幸(本文只涉及如何解决问题,没有原理,所以,Don’t ask me why)1 前话本文中,只讲述如何使用VC++(就是MFC)进行WORD、EXCEL自动化开发。
有几个问题先交待于此。
(1)office开发之VC与VB实现之比较。
事实上,MFC实在不适合进行office自动化开发。
相对VB而言,C++是一种强调类型的语言,这使得在实际编程时通常搞得你非常烦躁,不停地返回一些毫无意义的对象或指针(鸡肋啊!),而且整个程序会显得非常冗长。
VB这种属性化的编程语言则非常适于自动化开发。
(2)office版本。
在你提交帮助文档的时候,一定要说明你是针对哪个office版本开发的,否则不同的office版本可能会导致程序无法正常运行,因为不同版本的office提供的接口函数可能是不同的(特别是使用VC开发这个问题就比较明显,不知VB是否有同样的问题)。
本文中所述的是office20003版本。
(3)两个重要的学习来源。
初学office开发,两个不可忽视的学习来源是:word本身的VBA宏代码和微软官方网站。
录制的VBA宏代码可以给我们提供非常有用的思路,而且通过调试可以获得很多所需的参数值(因为MFC通常并不支持很多VBA宏)。
微软官方网提供了许多非常实用的技术文献(本文涉及的一些技术就来自于MSDN),如果英文基础还可以的话,建议到英文MSDN上去看看,那里的资料要比中国MSDN多。
QT实验指导

一、Qt概述1、关于QtQt是Trolltech公司的一个产品。
Qt是一个多平台的C++图形用户界面应用程序框架。
它提供给应用程序开发者建立图形用户界面应用程序所需的所有功能。
Qt是完全面向对象的,它很容易扩展,并且允许真正的组件编程。
自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。
Qt也是流行的Linux桌面环境KDE 的基础。
(KDE是所有主要的Linux发行版的一个标准组件)Qt支持下述平台:MS/Windows - 95、98、NT 4.0、ME、和2000Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台Macintosh - Mac OS XEmbedded - 有帧缓冲(frame buffer)支持的Linux平台。
2、Qt版本信息Qt被按不同的版本发行:Qt企业版和Qt专业版:提供给商业软件开发。
它们提供传统商业软件发行版并且提供免费升级和技术支持服务。
企业版比专业版多一些扩展模块。
Qt自由版:是Qt仅仅为了开发自由和开放源码软件提供的Unix/X11版本。
在Q公共许可证和GNU通用公共许可证下,它是免费的。
Qt/嵌入式自由版:是Qt为了开发自由软件提供的嵌入式版本。
在GNU通用公共许可证下,它是免费的。
下表是关于Qt在Windows环境下各个版本的区别。
(Qt为Windows只提供了专业版和企业版,不过自由版本的Qt仍然可以在Windows环境下使用)3、Qt的组成Qt提供了一组范围相当广泛的C++类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。
Qt Designer:Qt设计器。
用来可视化地设计应用程序界面。
Qt Linguist:Qt语言学家。
用来翻译应用程序。
以此提供对多种语言的支持。
Qmake:使用此工具可以由简单的、与平台无关的工程文件来生成编译所需的Makefile。
VC 2010入门教程

本文由wangjin8贡献pdf文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
《Visual C++ 2010入门教程》系列一:关于Visual Studio、VC和C++的那些事_独行剑侠_百度空间作者:董波日期:2010.6.14写在前面在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。
因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC 和C++的区别是什么。
现在有很多的朋友应该也有这些问题吧?学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。
记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。
接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。
刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。
内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。
由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。
注意,本教程非C++教程,不会教你C++,只会教你如何使用 Visual C++ 2010去练习去学习其它C++教材上面的程序。
Microsoft_Visual_C++6.0详细使用教程

[Tools]工具菜单
[Tools]菜单中是Visual C++附带的各种工具。 其中常用的工具有 ActiveX Control Test Container(测试一个ActiveX 控件的容器)、 Spy++(用于程序运行时以图形化方式查看系统进程、 线程、窗口、窗口信息等), 以及MFC Tracer(用于程序跟踪)等。 还有一些常用的设置:Customize,Options。
21
调试窗口
调试窗口包括一组窗口,在调试程序时分别显示 各种信息,这些窗口主要包括:
• • • • 变量查看窗口(WATCH) 过程调用查看窗口(CALL STACK) 内存查看窗口(MEMORY) 寄存器查看窗口(REGISTER)
22
用VC++环境下运行一个新 程序的上机操作步骤
1.打开VC++窗口,单击菜单[File]->[New] 2.在弹出窗口上选择标签Project,选中Win32 Console Application项,并在Project name框输入 工程名;在Location框输入保存源程序的路径名; 单击OK。 3.在弹出窗口选择An Empty Project,单击[Finish] 按钮;在下一窗口单击OK。 4.再在VC++菜单条中单击[File]->[New]。
9
[Windows]窗口菜单
[Windows]菜单主要工能如下: 1、New Window新建一个窗口,内容与当前窗口同。 2、Split 分割当前窗口成四个,内容全相同。 3、Docking View控制当前窗口是否成为浮动视图。 4、Cascade编辑窗口层叠放置。 5、Tile Horizontally编辑窗口横向平铺显示。 6、Tile Vertically编辑窗口纵向平铺显示。 7、Windows对已经打开的窗口进行集中管理。
HSPICE-使用流程

HSPICE 使用流程HPICE软件主要用于模拟电路的仿真。
模拟电路仿真工具是以电路理论、数值计算方法和计算机技术为基础实现的,由于模拟电路在性能上的复杂性和电路结构上的多样性,对仿真工具的精度、可靠性、收敛性以及速度等都有相当高的要求。
HSPICE程序由于收敛性好,适于做系统及电路仿真,又有工作站版和微机版本,在国内外的用户十分广泛。
一、HSPICE可模拟的内容1.直流分析:包括非线性电路的直流分析①电路的直流工作点:分析时电路中的电感全部短路,电容全部开路,得到电路的每一节点的电流和电压(相对参考点)值。
②直流小信号传输值:传输函数的直流小信号值为直流小信号工作下的输出变量和输入变量之比值,包括电路的输入电阻和输出电阻。
③直流转移曲线:HSPICE可在用户指定的范围内,逐步改变指定的独立电压或电流源,对每一个电源值的变化,都得到储存的输出变量。
④灵敏度分析:求出指定输出变量对于电路参数(包括电路中所有的元件,器件参数,直流电源的输入电平)的直流小信号灵敏度。
2.交流小信号分析:将交流输出变量作为频率的函数计算出来。
先计算电路的直流工作点,决定电路中所有非线性器件的线性化小信号模型参数,然后在用户所指定的频率范围内对该线性化电路进行分析。
①频域分析:在用户规定的频率范围内完成电路的交流分析。
②噪声分析:HSPICE可计算每个频率点上总的输出噪声电平及其等效输入噪声电平。
③失真分析:计算电路交流小信号工作下电路的失真特性,分析时是在输入端加有一个或两个频率的信号,在用户给定的输出负载电阻时,求出在该负载上的输出失真功率。
3.瞬态分析①瞬态响应:是从时间为零开始,到用户规定的时间范围内进行电路的瞬态特性分析。
②傅立叶分析:可以对输出波形进行傅立叶分析,得到在用户指定的基频及时间间隔范围的傅立叶系数。
4.电路的温度特性分析:HSPICE在用户未说明时,是在27℃的标称温度下进行各种模拟的。
当用户指定电路在什么温度下工作时,HSPICE也能进行不同温度下的电路特性分析,在温度低于-273℃时不予模拟。
方正飞翔 8.3 数字版 使用手册说明书

方正飞翔8.3数字版FounderFXDP 8.3 使用说明书北京北大方正电子有限公司2023年3月本手册内容改动及版本更新将不再另行通知。
本手册适用于方正飞翔8使用。
本手册的范例中使用的人名、公司名和数据如果没有特别指明,均属虚构。
对于本手册、及本手册涉及的技术和产品,北京北大方正电子有限公司拥有其专利、商标、著作权或其他知识产权,除非得到北京北大方正电子有限公司的书面许可,本手册不授予这些专利、商标、著作权或其他知识产权的许可。
版权所有©(2002~2023)北京北大方正电子有限公司保留所有权利●Founder是北京北大方正集团公司的注册商标,方正飞翔(FounderFX)是北京北大方正电子有限公司的商标。
●Microsoft、MS-DOS、Windows、Windows NT是Microsoft公司的商标或注册商标。
●其他标牌和产品名称是其各自公司的商标或注册商标。
●方正飞翔的一切有关权利属于北京北大方正电子有限公司所有。
●本手册中所涉及的软件产品及其后续升级产品均由北京北大方正电子有限公司制作并负责全权销售。
北京北大方正电子有限公司地址:北京海淀区上地信息产业基地五街九号方正大厦电话:(010)82531188传真:(010)62981438邮编:100085方正客户服务中心(010)82531688提供方正飞翔的售后技术支持和服务质量监督电话:(010)62981478质量监督信箱:****************网址:/目录目录第1章概述 (1)方正飞翔数字版(以下简称飞翔数字版)的作用 (1)应用领域 (1)数字出版物的制作流程 (1)系统配置 (2)安装 (3)飞翔的安装和卸载 (3)加密锁 (3)连接服务器(飞翔网络服务版) (3)工作区浏览 (3)选项卡 (4)页面视图 (4)工具箱 (6)浮动面板 (7)快速访问工具栏和工具条 (7)状态栏和滚动条 (7)Tip提示 (8)标尺 (8)提示线 (8)界面显示方式 (8)表达习惯 (9)第2章排版入门 (10)新建文档 (10)排入文档 (11)静态内容排版 (11)应用文字样式 (11)应用段落样式 (12)1方正飞翔8.3数字版使用说明书2 制作互动效果 (13)预览 (14)文档输出 (15)输出 (15)打包 (15)第3章工作环境设置 (16)文件设置 (16)常规 (16)默认图元设置 (17)默认排版设置 (17)偏好设置 (18)常规 (19)文本 (20)单位和步长 (22)图像 (22)字体搭配 (24)字体设置 (24)常用字体 (24)文件夹设置 (24)拼写检查 (24)自定义快捷键 (25)插件管理 (26)字体集管理 (26)复合字体 (27)禁排设置 (28)导入/导出工作环境 (29)第4章文件操作 (30)文件的基本操作 (30)版面设置 (30)版面调整 (30)打开文件 (31)目录多文件操作 (31)合并文件 (31)输出向导 (33)预飞 (33)文档输出 (35)保存并同步至云端 (36)工程输出 (40)另存PDML/XML格式文件 (42)打包 (43)模板文件 (43)基于模板新建文件 (43)新建模板 (43)文件打印 (45)打印 (45)第5章录入文字和排入图片 (47)录入文字内容 (47)文字块内录入文字 (47)排入图片 (47)JPG格式 (47)PDF格式 (49)排入PDF (50)排入CorelDraw文件 (50)支持的CorelDraw文件特性 (50)排入CorelDraw文件 (50)部件库 (50)新建部件 (52)复制部件 (52)素材夹 (52)增加、删除素材目录 (53)搜索 (53)第6章文字处理 (54)3方正飞翔8.3数字版使用说明书4 文字的字符处理 (54)文字的录入 (54)符号的录入 (55)文字编辑操作 (56)选中文字 (56)文字的查找替换 (56)正则表达式 (58)文字的内码转换 (61)文字的属性操作 (61)格式刷 (61)文字的美工设计 (62)艺术字 (62)装饰字 (62)文裁底 (63)转裁剪路径 (63)文字转曲 (63)文字的字体操作 (64)字体管理 (64)文字样式 (64)创建样式 (64)编辑样式 (65)应用样式 (65)断开与样式的链接 (65)应用样式,清除无名属性 (66)导入/导出样式 (66)第7章段落排版 (67)段落的基本操作 (67)段落样式 (67)创建样式 (67)编辑样式 (73)应用样式 (73)目录导入/导出样式 (74)第8章文字版面排版 (75)文字块基本操作 (75)文字块标记 (75)删除文字块 (76)文字块形状 (76)框适应文 (77)文字块内空 (77)文字打散 (78)文字排版格式 (78)文字排版方向 (78)英文排版功能 (78)中文与英文数字间距 (78)使用弯引号 (78)拆音节 (79)优化字偶距 (79)拼注音排版 (80)拆笔画 (83)跟随式 (84)笔画式 (85)描红式 (85)笔画跟随式 (85)第9章版面对象操作 (87)对象基本操作 (87)选中对象 (87)移动对象 (87)编辑对象 (88)对象的大小 (88)对象的倾斜、旋转和变倍 (88)对齐 (89)镜像 (90)5方正飞翔8.3数字版使用说明书6 对象的捕捉操作 (90)设置捕捉距离 (91)捕捉对象类型 (91)智能参考线与捕捉 (91)对象层管理及层次关系 (91)层管理的基本操作 (92)同一层上的对象层次 (92)对象管理 (92)对象的成组与锁定 (92)成组和解组 (92)锁定和解锁 (93)对象的图文混排 (93)沿线排版 (93)条码对象操作 (94)对象的设计操作 (94)阴影与透明 (94)图像填充 (95)第10章互动效果制作 (96)互动对象 (96)音频 (96)背景音乐 (98)视频 (100)图像扫视 (101)图片对比 (103)图像序列 (104)滑线动画 (105)自由拖拽 (107)图文框 (107)网页视图 (108)动感图像 (108)图表 (109)目录地理标注 (110)增强现实 (111)精灵 (112)拼图游戏 (112)演示文稿 (114)擦除 (114)点播 (115)复读 (117)画廊 (118)按钮 (120)弹出内容 (126)逻辑事件 (129)合成图片 (133)互动长图 (134)虚拟现实 (136)转滚动内容 (138)超链接 (139)加载页 (141)数据服务 (141)文本 (141)单选 (143)复选 (144)照片 (146)列表 (147)微信头像 (148)微信昵称 (149)接力计数 (149)计时器 (151)测验 (152)数据按钮 (152)动画 (154)7方正飞翔8.3数字版使用说明书8普通动画的制作方式 (154)路径动画的制作方式 (156)形变动画的制作方式 (157)背景 (159)页面属性 (159)对象转换 (161)转普通对象 (161)转图像块 (162)对象管理 (162)互动效果预览 (163)互动对象管理 (163)制作导览目录 (164)创建导览目录 (165)编辑导览目录 (166)标注栏目 (168)目录的合并 (168)栏目分类 (168)第11章图像处理 (170)图像基本操作 (170)调整图像大小 (170)图像显示操作 (170)图框适应 (171)图像裁剪操作 (171)用选取工具裁剪图像 (171)用图像裁剪工具裁剪图像 (171)使用穿透工具裁剪图像 (171)用剪刀工具切分图像 (171)图像裁剪 (172)图像管理 (172)灰度图着色 (176)启动图像编辑器 (176)目录第12章图形操作 (178)图形基本操作 (178)绘制图形 (178)图形编辑 (180)图形属性基本设置 (182)图形变换操作 (185)块变形操作 (185)隐边矩形操作 (185)路径运算操作 (186)第13章颜色 (187)颜色的基本操作 (187)颜色面板 (187)颜色模式 (187)存为色样 (188)为对象着色 (188)颜色工具 (188)颜色吸管 (188)颜色样式 (189)色样浮动窗口 (189)应用色样 (190)色样的基本操作 (190)第14章配套设计资源 (191)平面设计 (191)图形素材 (191)教辅素材 (191)图像编辑 (191)云部件 (191)第15章辅助工具说明 (192)素材加工工具 (192)阅读器 (192)9方正飞翔8.3数字版使用说明书10 数字出版物上传工具 (193)附录:快捷键汇总 (194)工具箱 (194)主功能区 (195)工具切换 (199)文字操作 (199)版面操作 (202)对象操作 (202)输入法 (204)使用条款 (205)第1章概述第1章概述方正飞翔数字版(以下简称飞翔数字版)的作用在印刷出版时代,出版物以纸张做为载体,纸张上可以印刷文字、图片、图形等静态内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用于取得当前被激活的MDI子窗体
Form2^ childForm = gcnew Form2(); childForm->MdiParent = this; childForm->Show();
// 创建子窗体对象 // 设置子窗体的父窗体 // 显示子窗体
3.5.2 创建多文档界面窗体
【例3.9】 创建MDI窗体应用程序。 (1)创建一个项目名为Ex3_9的Windows窗体应用程序,适当调整窗体的大 小,并在“属性”窗口中分别修改Text属性为“MDI窗体”,IsMdiContainer属性 为true。 (2)在“工具箱”窗口中展开“菜单和工具栏”节点,选择MenuStrip控件 并拖动到窗体中。按照如图3.27所示添加相应的菜单项,并在“属性”窗口中修 改菜单项的相关属性。修改属性后的菜单项如图3.28所示。
3.5.3 合并菜单
(6)选择“生成”→“生成解决方案”菜单命令以生成项目,并选择“调 试”→“开始执行(不调试)”菜单命令以运行项目。当Ex3_10项目运行后,选 择“新建”菜单命令创建MDI子窗体,同时MDI子窗体中的菜单项将与主窗体的菜 单合并。选择“关闭”菜单命令后将关闭当前活动的MDI子窗体。Ex3_10项目的 运行结果如图3.33所示。
一对多的窗体
8.4.2 合并菜单项
【例Ex_MDI2】合并菜单 (1) 设计合并框架 创建一个Windows窗体应用程序Ex_MDI2。在打开的窗体设计器中,单击 Form1窗体,在窗体属性窗口中,将Text属性内容修改成“合并菜单”,将
IsMdiContainer属性设为true。
滑出工具箱,将“菜单和工具栏”中的MenuStrip组件拖放到窗体中,这样 在窗体模板下面就有一个menuStrip1图标。在“请在此处输入”框中输入“文件 (&F)”,在右侧“请在此处输入”框中输入“编辑(&E)”。
8.4.1 MDI及其创建
同时,在Form2.h的构造函数代码处添加下列代码:
public: Form2(void) { InitializeComponent(); // //TODO: 在此处添加构造函数代码 // strDocFileName = nullptr; } Form2( String^ strName ) { InitializeComponent(); strDocFileName = strName; }
3.5.2 创建多文档界面窗体
(5)在Form2窗体设计器中适当调整Form2窗体的大小,并在“属性”窗口 中修改窗体的Text属性为“MDI子窗体”。然后在“工具箱”窗口中选择 RichTextBox控件并添加到Form2窗体中,在“属性”窗口中修改RichTextBox控件的 Dock属性为Fill。 (6)在Form1窗体设计器中选择menuStrip1控件中的“新建”菜单,在“属 性”窗口中为该菜单添加Click事件的处理方法newMenuClick。在Form1.h头文件的 起始行包含Form2窗体的头文件Form2.h,然后在newMenuClick方法中创建Form2 窗体对象并显示Form2窗体。代码如下: #pragma once #include "Form2.h" // 包含子窗体的头文件 // ... System::Void newMenuClick(System::Object^ sender, System::EventArgs^ e) { Form2^ childForm = gcnew Form2(); // 创建子窗体对象 childForm->MdiParent = this; // 设置子窗体的父窗体 childForm->Show(); // 显示子窗体 }
成员名称 Append Insert 说 明 不管任何匹配或索引设置情况下,把项添加到合并后的集合的末尾 把项插入目标集合中前一个匹配项的后面,或者插入指定的索引位置
MatchOnly
Remove Replace
源项的子项称为集合中匹配项的子项
从集合中删除所有匹配的项 用源项替换集合中的匹配项,源项的下拉项在新项中并不显示
3.5 多文档界面(MDI)
3.5.1 多文档界面的结构 MDI应用程序中的子窗体同样也是Form对象,其中MdiParent属性指定该子窗 体的MDI父窗体的对象。可以在MDI容器窗体中创建这些子窗体对象,同时设置子 窗体的MdiParentorm类中与MDI应 用程序相关的属性如表3.17所示。
3.5.3 合并菜单
【例3.10】 合并父窗体与子窗体的菜单项。 (1)按照例3.9中的步骤创建一个项目名称为Ex3_10的MDI多文档界面的 Windows窗体程序。 (2)在窗体设计器中打开Form2窗体,并向窗体添加一个MenuStrip控件。 按照如图3.31所示向MenuStrip控件中添加相应的菜单项,并在“属性”窗口中 修改菜单项的相关属性。修改属性后的菜单项如图3.32所示。
(10)多文档界面模型
暨南大学电气信息学院 严东松 2015-2016学年第一学期
3.5 多文档界面
8.4.1 MDI及其创建 多文档窗体应用程序与单文档相比,最大的特点是可以同时打开多个文档窗 口。容纳这些文档子的应用程序窗体称为“主框架窗口”。在Windows窗体应用 程序中,文档窗口和主框架窗口都是从Form类派生的窗体类,和以前介绍的窗体 没什么区别。 不过,Form类所支持的多文档界面(MDI)的“主框架窗口”称为“MDI容 器窗体”,而文档窗口称为“子窗体”。
8.4.2 合并菜单项
选择“项目”→“添加类”菜单命令,在弹出的“添加类”窗口中,选择 Visual C++节点下的“CLR”类型,这时在右侧模板列表中显示出该类型的所有类 模板,选中“Windows窗体”,在“名称”框中输入窗体类名WordForm。类似, 再向项目添加一个窗体,类名设为ImageForm。 将ImageForm窗体大小缩小为200 x 200,将工具箱“菜单和工具栏”中的 MenuStrip组件拖放到该窗体中,添加顶层菜单项“操作(&O)”,在此菜单项下添 加“旋转(&R)”和“缩放(&S)”子菜单项,保留默认的菜单项名称,结果如图8.17 (b)所示。
3.5.2 创建多文档界面窗体
(3)在窗体设计器的底部选中menuStrip1控件, 并在“属性”窗口中单击MdiWindowListItem属性后 的下拉按钮 ,在下拉菜单中选择 windowsToolStripMenuItem项。 (4)选择“项目”→“添加类”菜单命令,弹 出“添加类”对话框。在对话框的中间窗格中选择 “Windows窗体”,并在“名称”栏中输入Form2, 单击“添加”按钮添加一个Windows窗体。添加 Form2窗体如图3.29所示。
项类包含了从父类继承的AllowMerge、MergeAction和
MergeIndex属性,用来指定菜单或菜单项是否可以合并以及 合并的方式。
3.5.3 合并菜单
1.合并菜单 在MDI应用程序中,MDI容器窗体(MDI父窗体)会自动将活动子窗体的菜单 与父窗体的MainMenuStrip属性指定的MenuStrip对象相合并。MenuStrip及 ToolStripMenuItem类中包含了从ToolStrip和ToolStripItem类继承的AllowMerge、 MergeAction和MergeIndex属性,这些属性用于指定菜单和菜单项是否可以合并 以及合并的方式。 MergeAction属性是包含在System::Windows::Forms命名空间的MergeAction枚 举值,用于指定菜单项合并到一个目标菜单条的方式。MergeAction枚举中的成 员如表3.18所示。
8.4.2 合并菜单项
单击“文件(&F)”菜单项,在该菜单项下方的“请在此处输入”框中输入 “导入(&I)”。在“导入(&I)”添加两个子菜单“Word文档”和“Image文档”, 将它们的菜单项Name属性改为file_wordItem和file_imageItem。结果如图8.17(a) 所示。
属 IsMdiChild IsMdiContainer MdiChildren MdiParent 性 说 判断该窗体是否为MDI子窗体 判断该窗体是否为MDI容器窗体(MDI父窗体) 以Form对象的数组形式获取该窗体包含的MDI子窗体集合 获取或设置该窗体的MDI容器窗体 明
ActiveMdiChild
编译运行并测试,结果如图所示。
3.5.3 合并菜单项
在多文档应用程序中,常常会遇到主窗体的菜单命令与当
前活动的文档子窗体自带的菜单命令各不相同,为了能在主
窗体中也能通过菜单命令操作文档子窗体,这时就需要将当 前子窗体的菜单与主窗体的菜单进行合并。 为了达到上述目的,MenuStrip、 ToolStripDropDownMenu、ToolStripMenuItem等菜单或菜单
3.5.2 创建多文档界面窗体
(7)选择“生成”→“生成解决方案”菜单命令生成项目,并选择“调 试”→“开始执行(不调试)”菜单命令以运行项目。在Ex3_9项目运行后,单 击窗体中的“文件”→“新建”菜单命令后将创建一个MDI子窗体,在“窗口” 菜单中列出所有的子窗体,并选中处于激活状态的子窗体。Ex3_9项目的运行结 果如图3.30所示。
3.5.3 合并菜单
如何影响?
(3)在Form2窗体设计器中选择“文件”菜单项,然后在“属性”窗口中 修改该菜单项的MergeAction属性为MatchOnly。同时,分别修改该菜单下所有子 菜单的MergeAction属性为Insert,并修改MergeIndex属性的值依次从1到3。 (4)在Form2窗体设计器中选择该窗体,在“属性”窗口中为Form2窗体的 Load事件添加form2_Load处理方法,并在该方法中隐藏菜单栏。代码如下: System::Void form2Load(System::Object^ sender, System::EventArgs^ e) { menuStrip1->Visible = !this->IsMdiChild; // 作为MDI子窗体时隐藏菜单栏 不隐藏? } (5)在“属性”窗口中为Form2窗体中的“关闭”菜单项添加Click事件的 处理方法closeMenuClick,并在该方法中调用Close方法关闭MDI子窗体。代码如 下: System::Void closeMenuClick(System::Object^ sender, System::EventArgs^ e) { Close(); // 关闭MDI子窗体 }