第11章 多文档界面与工具栏设计
软件工程导论第11章
【还可以把适配接口再进一步细分为转换接口和扩充接口。转换接口, 是为了克服与表示方法、数据结构或硬件特点相关的操作给重用带来 的困难而设计的,这类接口是每个类构件在重用时都必须重新定义的 服务的集合。当使用C++语言编程时,应该在根类(或适当的基类)中, 把属于转换接口的服务定义为纯虚函数。如果某个服务有多种可能的 实现算法,则应该把它当作扩充接口。扩充接口与转换接口不同,并 不需要强迫用户在派生类中重新定义它们,相反,如果在派生类中没 有给出扩充接口的新算法,则将继承父类中的算法。当用C++语言实现 时,在基类中把这类服务定义为普通的虚函数。】
4. 弱耦合 耦合:指一个软件结构内不同模块之间互连的紧 密程度。 在面向对象方法中,对象是最基本的模块,因此, 耦合主要指不同对象之间相互关联的紧密程度。 弱耦合是优秀设计的一个重要标准。
5
对象之间的耦合分为两大类: (1) 交互耦合: 对象之间的耦合通过消息连接来实现。 使交互耦合尽可能松散,应遵守下述准则: 尽量降低消息连接的复杂程度。 应该尽量减少消息中包含的参数个数,降低参数的复 杂程度。 减少对象发送(或接收)的消息数。 (2) 继承耦合 与交互耦合相反,应该提高继承耦合程度。 通过继承关系结合起来的基类和派生类,构成系统中 粒度更大的模块。设计时应该使特殊类尽量多继承并 使用其一般化类的属性和服务,从而更紧密地耦合到 其一般化类。
13
2. 软件成分的重用级别 (1) 代码重用 源代码剪贴:最原始的重用形式。 复制或修改原有代码时可能出错,存在严重的配臵 管理问题,人们几乎无法跟踪原始代码块多次修改 重用的过程。 源代码包含:许多程序设计语言都提供包含库中 源代码的机制。配臵管理问题有所缓解,修改了库 中源代码之后,所有包含它的程序自然都必须重新 编译。 继承:利用继承机制重用类库中的类时,无须修 改已有的代码,就可以扩充或具体化在库中找出的 类,基本上不存在配臵管理问题。
第11章 多文档窗体
11.2 创建多文档窗体
2)MDI窗体的鼠标双击事件DblClick 例如,要想在双击MDI窗体时,实现卸载该MDI窗 体,需要编写的代码如下: Private Sub MDIForm_DblClick() Unload MDIForm1 End Sub 3.Arrang方法 当在MDI窗体中显示多个子窗体或子窗体图标时, 可以根据不同情况改变子窗体的布置方式,Arrang方 法的语法格式为: 对象.Arrang Arrangement
11.2 创建多文档窗体
【例11-1】设计一个在带有子窗体Form1的MDI窗体工 程,通过执行文件菜单的“打开”命令,可以打开多个子 窗体。MDI窗体的菜单如图11-6所示,运行结果如图117所示。(演示)
图11-6 MDI窗体中添加的菜单
图11-7 执行四次“打开”命令的MDI窗体
11.2 创建多文档窗体
应用程序的用户界面主要分为两种形式: 单文档界面(SDI,Single Document Interface)和多文档 界面(MDI,Multiple Document Interface)。 单文档界面并不是指只有一个窗体的界面,而是指应用程序 的各窗体是相互独立的,它们在屏幕上独立显示、移动、最小化 或最大化,与其他窗体无关。在前面创建的所有程序都是单文档 界面。 多文档界面由多个窗体组成,但这些窗体不是独立的。其中 有一个窗体称为父窗体,其他窗体称为他的子窗体。
第11章 多文档窗体
学习目标:
认识单文档窗体与多文档窗体的区别 掌握多文档窗体的创建 了解多文档窗体的属性与事件 掌握多文档窗体的应用
第11章 多文档窗体
11.1 单文档窗体与多文档窗体 11.2 创建多文档窗体
11.3 一个简单的文档编辑器
matlab基础与应用教程课件第11章
y=fscanf(fid,'%5d',[10,10]);
A=fscanf(fid,'%s', [4]);
C=fscanf(fid,'%g %g',[2 inf]);
〔2〕fprintf函数 fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为
【例11.3】假定文件textdemo.txt中有以下格式的数据:
Name English Chinese Mathmatics
Wang
99
98
100
Li
98
89
70
......
此文件第一行为标题行,第2~5行的第1列为字符型,后3列为整型。从 该文件中将前3个数据读入到grades的命令如下:
fid = fopen('textdemo.txt', 'r');
fid=fopen('aaa.dat','w');
〔3〕调用MATLAB函数进展运算
11.2 MATLAB数据接口
MATLAB提供了多种不同层次的数据输入/输出函数。 MATLAB提供多种方法支持将磁盘文件和剪贴板中的数据导入到 MATLAB的工作区,最简单的方法是使用数据导入向导〔可通过选择 “File〞菜单中的“Import data〞命令或在命令窗口执行命令“uiimport 〞来激活它〕,而在M文件中那么可以使用MATLAB输入/输出函数。
〔4〕textscan函数
有格式文件可以使用文本输入函数textscan读取数据。textscan函数调用 格式为
C=textscan(fid, fmt, N , param, value)
单文档与多文档解析
使用AppWizard创建 SDI和MDI界面的应 用程序的过程几乎完 全一样 主 要 差 别
在创建SDI界面的应用程序时,不生成 CChildFrame类,CMainFrame类的基类 为CFrameWnd
在创建MDI界面的应用程序时, CMainFrame类的基类为 CMDIFrameWnd
3
视图是文档的不同表现形式,一个*.html 语言的文件,在浏览器里和在记事本中打 开的表现形式是不同的但它们操作的是同 一个文件这就是一个文档对应两视图
Doc/View框架虽然可以调用成百上千个不 同的类,但是核心类只有五个: CWinApp CDocument CView CDocTemplate CFrameWnd
10
11.2.1 CWinApp 类
CWinApp类代表主程序,CWinApp本身是不可见的,它 负责维护进程的启动、终止、消息循环、命令行参数、 资源管理
视图把数据显示 于计算机屏幕上
视图通过相关联的文档类 的成员函数将经过修改的 数据传递给文档对象
文档对象获得修改过的数据之后,对 其进行必要的修改,最后保存到永久 介质(如磁盘文件)中
用户通过与视图的 交互来查看数据并 对数据进行修改
6
SDI文档/视图应用程序示意图
7
11.1.3 SDI程序中文档、视图对象的创建过程
成员 m_pszAppName M_lpCmdLine M_pMainWnd M_pszExeName M_pszProfileName M_pszRegistrKey LoadCursor LoadIcon 描述 应用程序名 命令行参数 应用程序主窗口指针 可执行文件名 配置INI文件名 配置注册表主键值 加载光标资源 加载图标资源
VFP专业知识:第11章_表单
第十一章 表 单
2.类 类是对一类相似对象的性质描述,这些对象具有相 同种类的属性以及方法 3.子类与继承 继承是指在基于现有的类创建新类时,新类继承了 现有类里的方法和属性。 此外,可以为新类添加新的方法和属性。 我们把新类称为现有类的子类,而把现有类称为新 类的父类。 一个子类的成员一般包括: (1)从其父类继承的属性和方法。 (2)由子类自己定义的属性和方法。
第十一章 表 单
类 类
抽象
细化
实例化
继承
子类
对象 …… 对象
对象
实例化
例如Visual FoxPro 6.0中CommandButton是命令按钮类, “提交”按钮和“退出”按钮都是CommandButton类的实例。
第十一章 表 单
4、Visual FoxPro基类 Visual FoxPro基类是系统本身内含的,并不存放在 某个类库中。 用户可以基于基类生成所需要的对象,也可以扩展基 类创建自己的子类 VFP的基类见 P132 表5.1
第十一章 表 单
第十一章 表 单
本 章 要 点
面向对象的概念 建立表单 管理表单 运行表单 常用表单控件
第十一章 表 单
一、面向对象的概念
1、对象(Object): 客观世界里的任何实体都可以被看作是对象。 对象可以是具体的物,也可以指某些概念。
1.名字不能更改 2.可以增加新属性
第十一章 表 单
11、常用控件的公共属性 name:控件的名称,它是代码中访问控件的标识(表单或表单 集除外)。 Fontname:字体名。 Fontbold:字体样式为粗体。 Fontsize:字体大小。 Fontitalic:字体样式为斜体。 Forecolor:前景色。 Height:控件的高度 Width:控件的宽度。控件的高度和控件的宽度,也可在设计 时通过鼠标拖曳进行可视化调整。 Visible:控件是否显示。 Enable:控件运行时是否有效。如果为 .T.,则表示控件有效, 否则运行时控件不可使用。
第10章-VB多文档界面与工具栏设计
☆☆ 第10章多文档界面与工具栏设计
17
2.常用格式化属性
格式化属性,可对该控件中选中的任何部分的文本使用不同的格式
分类
属性
值类型
说明
选中文本 字体、字号
字型
SelText SelStart SelLength SelFontName SelFontSize SelBold SelItalic SelUnderline SelStrikethru
End Sub
☆☆ 第10章多文档界面与工具栏设计
4
10.1 多文档界面设计
10.1.2 显示MDI窗体及其子窗体
显示任何窗体的方法为show,还有有关规则: (1)加载子窗体时,其父窗体会自动加载并显示;反之 则无。 (2)MDI窗体子窗体
1.创建 MDI 应用程序的菜单
2.多文档界面中的“窗口”菜单
☆☆ 第10章多文档界面与工具栏设计
6
10.1 多文档界面设计
(1) 显示打开的多个文档窗口 要在某个菜单上显示所有打开的子窗体标题,只需利用
菜单编辑器将该菜单的WindowList属性设置为True。 (2).排列窗口 利用Arrange方法进行层叠、平铺和排列图标。 形式: MDI窗体对象.Arrange 排列方式
MDI子窗体 标准窗体 MDI窗体
☆☆ 第10章多文档界面与工具栏设计
2
10.1.1 创建多文档界面应用程序
1.创建MDI窗体 用户要建立一个MDI窗体,可以选择“工程”菜单中的
“添加MDI窗体”命令,会弹出“添加MDI窗体”对话框, 选择“新建MDI窗体”或“现存”的MDI窗体,再选择“打 开”按钮。
数据库基础与Visual FoxPro9.0程序设计(谢膺白)章 (11)
第11 章 表单 图11.4 表单设计器界面的四个工具栏
第11 章 表单
11.1.2 表单向导
和别的向导一样,用户只要打开“表单向导”,就可在它 的指引下创建自己需要的表单。它不但可以指导用户创建单表表 单,还可以指导用户创建一对多表单。下面以创建单表表单为例 讲解表单向导的用法。
例11.1 根据数据表“xsjbqkb.dbf”,用表单向导创建一 个单表表单“xsjbqkb.scx”。
第11 章 表单
2.在系统菜单中使用程序菜单运行选项运行 此种方法适用于运行已存盘的表单,步骤如下: S1:在VFP系统菜单中→“程序”→“运行(D)…”↓运行。 S2:选择文件类型为“表单”,双击列出的某表单文件名, 则该表单被运行。 3. 在项目管理器中使用运行按钮运行 此种方法适用于在项目中已存在的表单,其步骤如下: S1:打开项目管理器。 S2:选择表单。→“文档”→“表单”,选中某个表单,→ 【运行】。 例11.4 利用DO命令运行表单“xsjbqkb.scx”。 DO FORM xsjbqkb
向导选取,如图11.6所示。
图11.6 “向导选取”对话框
第11 章 表单 S5:打开“表单向导”对话框。→“表单向导”→【确定】
↓表单向导 第一步-字段选取,选择表“xsjbqkb.dbf”的所有 字段,如图11.7所示。
图11.7 表单向导第一步之字段选取
第11 章 表单
表单向导后面各步骤与查询向导、视图向导类似,用户可在 它的指引下,逐步完成表单设计。
第11 章 表单
第11章 表 单
11.1 表单设计基础 11.2 表单内控件的基本操作 11.3 子表单、浮动表单和顶层表单 11.4 参数表单 11.5 从表单中返回值 11.6 表单集 练习十一
工具状态栏与多选项卡共43页文档
第11章 工具状态栏与多选项卡
上章回顾: 菜单 主菜单 快捷菜单
本章要点: 工具栏 状态栏 PageControl
11.1 循序渐进学理论
随着Windows操作系统风行世界,各种基 于Windows的应用程序及各类娱乐软件也日益 为人们所熟悉。这些软件的共同特点之一就 是都包含了工具栏和状态栏及其多项选项卡。
该值不能和其他组的GroupIndex值相冲突。
要使某按钮被选中时保持按下状态应给该按 钮的GroupIndex属性赋予一个大于0的整数 值。否则在松开按钮后,它也会自动弹起。
✓Hint属性:用于设置快捷按钮的提示功能及 在状态栏所显示的文本。
✓Layout属性:用于设置快捷按钮表面的文本 和位图的显示风格。 Down属性:用于判断快 捷按钮是否处于被按下状态。
procedure boBox1Change(Sender: TObject); begin :=combobox1.Text; end;
procedure TForm1.quitClick(Sender: TObject); begin close; end; procedure TForm1.copyClick(Sender: TObject); begin if memo1.SelLength>0then memo1.copyToClipboard; end; procedure TForm1.pastClick(Sender: TObject); begin memo1.PasteFromClipboard; end; procedure TForm1.fontClick(Sender: TObject); begin if fontdialog1.execute then memo1.Font:=fontdialog1.Fo部分Windows应用程序中,含有工具栏 和状态栏己形成了一种常规。
第11章单文档与多文档
中(而不是从存储介质 这一点与Windows消息
中)将文档中的数据取 和控件通知消息不同,
出来,然后在屏幕上 因为Windows消息和控
显示文档的数据
件通知消息就只4能被 窗口和视图处理。
文档/视图结构的工作机制
视图通过GetDocument 成员函数获得指向相关 联的文档对象的指针
通过该指针调用文 档类的成员函数来 从文档中读取数据
无论是保存文档或是打开文档,应用程序都是通过 调用文档类的Serialize串行化成员函数来完成操作的。 因此,在大多数情况下,我们都需要重载Serialize成员 函数。Serialize成员函数带有一个CArchive类型的参数, 这是一个与所打开的文件相关联的对象。一般情况下, 总是使用CArchive对象来保存和打开文档。
由于每一个文档可以有多个视图,但 每个视图只能对应于一个确定的文档
多文档程序需要解决的问题仅仅是多 个文档的数据管理方法的问题
多文档程序,最初的文档模板只支持主窗口,但每次打开一 个新文档时都调用CDocument的函数OnNewDocument,建 立一个由CMDIChildWnd派生的新的MDI子窗口,这些窗口 中保存着各种已打开的文档,所有的细节都由MFC库处理 3
建的。
每一种文档类型都有一种文档模板与之相对应,文档模
板负责创建和管理该文档类型的所有文档。
文档模板的构造函数的原型如下:
CDocTemplate
(UINT nIDResource, //与文档一同使用的各种资源的资源标识符 CRuntimeClass* pDocClass,// 指向文档派生文档类的对象的指针 CRuntimeClass* pFrameClass, //框架类的派生框架类的对象指针 CRuntimeClass* pViewClass //指向CView的派生视图类的对象指针
大学计算机基础教程课后习题答案(大一)
计算机基础作业第一章计算机与信息社会习题 1一、思考题:1.计算机的发展经历了哪几个阶段?各阶段的主要特征是什么?答:计算机经历了电子管、晶体管、中小规模集成电路和大、超大规模集成电路等 4 个阶段。
电子管计算机的特征是:采用电子管作为计算机的逻辑元件,内存储器采用水银延迟线,外存储器采用磁鼓、纸带、卡片等,运算速度只有每秒几千次到几万次基本运算,内存容量只有几千个字节,使用二进制表示的机器语言或汇编语言编写程序。
晶体管计算机的特征是:用晶体管代替了电子管,大量采用磁芯作为内存储器,采用磁盘、磁带等作为外存储器。
采用了中小规模集成电路的计算机的特征是:用集成电路代替了分立元件。
集成电路是把多个电子元器件集中在几平方毫米的基片上形成的逻辑电路。
采用了大、超大规模集成电路的计算机的特征是:以大规模、超大规模集成电路来构成计算机的主要功能部件,主存储器采用集成度很高的半导体存储器,目前计算机的最高速度可以达到每秒几十万亿次浮点运算。
4.计算机主要用于哪些领域?答:计算机主要应用在科学和工程计算、信息和数据处理、过程控制、计算机辅助系统及人工智能等领域。
7.信息技术都包含那些?答:信息技术主要包括信息基础技术、信息系统技术、信息应用技术三个层次。
二、选择题1.最早的计算机是用来进行(A) 的。
A )科学计算B)系统仿真C)自动控制D) 信息处理2.构成第二代计算机的主要电子元件是(B)A )电子管B)晶体管C)中 .小规模集成电路D)超大规模集成电路3.以下哪个不是计算机的特点(D)A )计算机的运行速度快B)计算机的准确度高C)计算机的存储容量巨大D)计算机的体积很小4 办公自动化属于计算机哪项应用(A)A )数据处理B)科学计算C)辅助设计D)人工智能5.以下关于信息的特征不正确的是(B)A )共享性B)不可存储C)可处理性D) 可传递第二章 计算机基础知识 习题 2. 思考题:2.计算机硬件有哪五部分组成?答:计算机由运算器、控制器、存储器、输入装置和输出装置五大部件组成。
第11章MDI窗体及菜单控件. 幻灯片.ppt
单例窗体代码(二)
//窗体关闭时释放资源 private void SingletonForm_Closing(object sender,
ponentModel.CancelEventArgs e) {
login = null; }
调用单例窗体 SingletonForm f = SingletonForm.CreateForm(); f.Show();
this.menuStrip1.Items.Add(t oolstrip); //添加子项
toolstrip.DropDownItems.Ad d("子菜单");
点击事件
双向传值
解决方案:使用静态变量
这个最简单,只要把变量描述成static就可以了,在Form2 中直接引用Form1的变量,代码如下:
排列子窗口
MDILayout 枚举的成员
成员名称
ArrangeIcons Cascade
TileHorizontal TileVertical
说明
在 MDI 父窗体的客户端区内排列所有 MDI 子窗体的图标 在 MDI 父窗体的客户端区内层叠所有 MDI 子窗口 在 MDI 父窗体的客户端区内水平平铺所有 MDI 子窗口 在 MDI 父窗体的客户端区内垂直平铺所有 MDI 子窗口
}
显示另一窗体
模态窗体:用户不能在各个窗口间切换
[被调用的窗体类] [窗体实例] = new [被调用的窗体类]();
[窗体实例].ShowDialog();
private void cmdShow_Click(object sender, System.EventArgs e)
{
frmA A = new frmA(); A.ShowDialog();
软件工程第11章(3-01)
2.编码的目的
编码的目的是使用选定的程序设计语言,把模块的过程性 描述翻译为用该语言书写的源程序。 编码产生的源程序应该正确可靠、简明清晰,而且具有较 高的效率。前两点要求是一致的,因为源代码越是清楚简 明,就越便于验证源代码和模块规格说明的一致性,也就 越容易对它进行测试和维护。
1.代码和程序遵守标准 与规范的重要性
1.2.2 编码语言的基本成分
1.数据成分 数据成分指明该语言能接受的数 据,用来描述程序中所涉及的数 据。如各种类型的变量、数组、 指针、记录等。作为程序操作的 对象,具有名称、类型和作用域 等特征。使用前要对数据的这些 特征加以说明。数据名称由用户 通过标识符命名,类型说明数据 须占用多少存储单元和存放形式, 作用域说明数据可被使用的范围。 以某语言为例,其数据构造方式 可分为基本类型和构造类型
1.2.2 编码语言的基本成分
3.控制成分 控制成分指明该语言允许的控制结构,人们可以利用这 些控制成分来构造程序中的控制逻辑。基本的控制成分 包括顺序控制结构、条件选择结构和循环结构
1.2.2 编码语言的基本成分
4.转输成分 传输成分指明该语言允许的数据传输方式,
在程序中可用它进行数据传输。 例如,Turbo C语言标准库提供了两个控 制台格式化输入、输出函数printf()和 scanf(),这两个函数可以在标准输入/输 出设备上以各种不同的格式读/写数据。 printf()函数用来向标准输出设备写数据, scanf()函数用来从标准输入设备上读数据。
1.1.4 编码途径
程序编码的一般途径有以下几种。 1.自顶向下的开发 2.自底向上的开发
3.自底向上和自顶向下相结合的开发
多媒体设计答案
第1章多媒体技术基本知识一、填空题1.多媒体作品的创作主要包括编写脚本、框架设计、素材准备、制作合成、测试发行等基本步骤。
2.多媒体作品的设计应考虑教育性、科学性、集成性、交互性、个别化、经济性等基本原则。
3.按照国际电信联盟的定义,媒体有感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体5大类。
4.按照创作特点,多媒体创作工具可以划分为基于图标的创作工具、基于描述语言或描述符号的创作工具、基于时间序列的创作工具和基于编程语言的创作工具4种类型。
二、简答题1.什么是媒体?什么是多媒体?媒体指的是信息传递和存储的最基本的技术和手段,或者说,媒体是信息的存在形式和表现形式。
我们所熟悉的报纸、杂志、电影、电视和广播等,都是通过不同的媒体形式进行传播。
所谓多媒体,就是使用计算机交互式技术和数字通信技术处理多种媒体信息,使之建立一定的逻辑关系,成为一个有机的人机交互系统。
通俗地讲,多媒体技术就是以计算机技术为基础,综合处理图、文、声、像等多种媒体信息的技术。
2.试举出一两个身边的实例,说明多媒体在我们生活中的应用。
大型商场的导购系统,就是一个多媒体应用的实例。
常见的形式是一台安装了触摸屏的计算机,通过触控查询系统,顾客能够随意选择查看自己感兴趣的商品,通过文字、图片、声音、录像等形式了解商品的信息,从而对商品的情况有一个比较全面的认识。
这样的系统,不仅方便了顾客,而且也提高了商场的经营效率。
教师在课堂上使用的多媒体教学课件,是多媒体技术在教育培训领域的一个典型应用。
通过图文声像等多种表现形式,可以活跃课堂气氛,提高学生学习的积极性,还能够将一些比较抽象的概念用图片、动画等形式表现出来,使学生对这些知识有了感性的认识,更容易理解和记忆。
应该说,多媒体课件的使用,对于提高课堂教学效率、改革教学教法有良好的效果,是加强素质教育的有效途径。
其他如商业产品的多媒体演示光盘、互动游戏、互联网站等,也都是多媒体应用的实例。
第11章 简单MFC应用程序开发
11.1.1 单文档与多文档界面
• SDI应用程序只支持打开一个文档,如Windows中的记事本 SDI应用程序只支持打开一个文档, Windows中的记事本 应用程序只支持打开一个文档 SDI应用程序的一个典型例子 MDI应用程序每次可以读 应用程序的一个典型例子。 是SDI应用程序的一个典型例子。MDI应用程序每次可以读 写多个文件或文档,可以同时有多个子窗口, 写多个文件或文档,可以同时有多个子窗口,对多个文档进 行操作, Word程序 程序。 行操作,如Word程序。
//注册应用程序的文档模板。文档模板将用作文档、框架窗口和视图之间的连接 注册应用程序的文档模板。文档模板将用作文档、 注册应用程序的文档模板 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( //创建单文档模板类对象 创建单文档模板类对象 IDR_MAINFRAME, //应用程序中各种资源 应用程序中各种资源ID 应用程序中各种资源 RUNTIME_CLASS(CTestDoc),//CTestDoc是应用程序中的文档类 是应用程序中的文档类 RUNTIME_CLASS(CMainFrame),//CMainFrame是应用程序的框架窗口类 是应用程序的框架窗口类 RUNTIME_CLASS(CTestView));//CTestView是应用程序的视图类 是应用程序的视图类
2009年1月
重庆理工大学计算机科学与技术系
共14页第7页CBiblioteka iew类 11.2.3 CView类
• CView类从CWnd派生出来,它提供的一般成员函数和虚拟成员函数参见 CView类从CWnd派生出来, 类从CWnd派生出来 教材P 11- 和教材P 11教材P235表11-3和教材P235表11-4; • 一个视图类可以通过GetDocument()函数得到和它关联的文档的指针, 一个视图类可以通过GetDocument()函数得到和它关联的文档的指针, GetDocument()函数得到和它关联的文档的指针 进一步可以得到文档中保存的数据; 进一步可以得到文档中保存的数据; • 当一个文档对象的数据发生变化时,该文档对象可以通过调用成员函数 当一个文档对象的数据发生变化时, UpdateAllViews()来刷新所有的视图 来刷新所有的视图; UpdateAllViews()来刷新所有的视图; • CView类中最常用的是OnDraw()函数,该函数在屏幕发生变化或因为焦 CView类中最常用的是OnDraw()函数 类中最常用的是OnDraw()函数, 点的变化需要重绘时调用,没有该函数, 点的变化需要重绘时调用,没有该函数,就不可能在程序切换时保证屏 幕的正确显示;OnDraw和WM_PAINT消息不同 消息不同: 幕的正确显示;OnDraw和WM_PAINT消息不同:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可以同时打开多个文档,每个文档都出现在自己的窗口中。如
Microsoft Excel等。
☆☆ 第11章多文档界面与工具栏设计
3
3、资源管理器样式
资源管理器样式界面是一个窗口,它含有两个窗格,其 中左半部是一个树形的或者层次型结构,右半部是一个显示 区,可用来定位或浏览大量的文档、图片或文件。
☆☆ 第11章多文档界面与工具栏设计
显示的文本
样式
可插入图象
☆☆ 第11章多文档界面与工具栏设计
28
12.3.2 动态显示状态栏信息
运行时,有些状态栏信息系统已具备,能自动显示, 如word的编辑窗口的状态栏。通过编程可以动态地显示光 标在文本中的位置。 Private Sub DocBox_Click()
'当单击文本框时,当前光标位置在状态栏的第2个窗格显示
☆☆ 第1112.4.2 手工创建工具栏
在 窗 体 或 MDI 窗 体 上 手 工 创 建 工 具 栏 , 通 常 是 用 PictureBox控件作为工具栏按钮的容器,用CommandButton 或Image控件作为工具栏的按钮。要为工具栏上的每一个按 钮指定一个图像和提示文字。
5
11.1.2 多文档界面设计
1、多文档界面由父窗口和子窗口组成,一个父窗口可包含多 个子窗口,子窗口最小化后将以图标形式出现在父窗口中,而不 会出现在Windows的任务栏中。当最小化父窗口时,所有的子窗 口也被最小化,只有父窗口的图标出现在任务栏中。父窗口就是 MDI窗体,子窗口是指MDChild属性为True的普通窗体。
1.创建 MDI 应用程序的菜单 2.多文档界面中的“窗口”菜单
☆☆ 第11章多文档界面与工具栏设计
21
12.2工具栏
12.2.1 ToolBar控件
把ToolBar控件添加到工具箱,将 “Microsoft Windows Common Controls 6.0”将控件添加到工具箱,通过ToolBar、 ImageList组合使用建立工具栏,步骤 1. 在ToolBar控件中创建Button对象。
Private Sub arrangicon_Click() MDIForm1.Arrange 3 End Sub Private Sub cd_Click() MDIForm1.Arrange 0 End Sub
☆☆ 第11章多文档界面与工具栏设计
16
Private Sub new_Click() Dim Newform As New Form1 no = no + 1 Newform.Caption = "no" & no Newform.Show End Sub
☆☆ 第11章多文档界面与工具栏设计
7
11.1.3、建立MDI多窗体应用程序的步骤: (1)“新建工程” (2)“工程”菜单中选择“添加MDI窗体” (3)设置form1的MDIChild属性为True
☆☆ 第11章多文档界面与工具栏设计
8
要创建多个子窗体,可以通过窗体类来实现: Public Sub FileNewProc() ‘通用过程 Dim NewForm As New form1 No = No + 1 NewForm.Caption = "no" & No NewForm.Show End Sub
第11章 多文档界面与工具栏设计
本章要求:
1.了解单文档界面(SDI)与多文档界面(MDI)的
不同,掌握界面设计的一般方法 2. 掌握工具栏、状态栏等的设计 3.并通过本章“一个简易的文字处理系统”的建立 ,掌握VB应用程序界面设计的一般方法。
☆☆ 第11章多文档界面与工具栏设计
1
多重文档界面MDI(Multiple Document Interface) 是Windows应用程序的典型结构。利用MDI可以在一个 包容式窗体中包含多个窗体,而且可以同时显示多个文 件(文档),每个文件都在自己的窗口内显示。这种应 用程序由“父窗口”和“子窗口”构成。 注意,MDI与多重窗体不是一个概念。多重程序 中的各个窗体是彼此独立的。MDI虽然也可以含有多个 窗体,但他是有一个父窗体,其他窗体(子窗体)都在 父窗体内。
12
11.1.7、显示MDI窗体及其子窗体
显示任何窗体的方法为show,还有有关规则:
加载子窗体时,其父窗体会自动加载并显示;反之则无。
MDI窗体有AutoShowChildren属性,决定是否自动显示子窗体
☆☆ 第11章多文档界面与工具栏设计
13
11.1.8、多文档界面应用程序中的 “窗口”菜单
Private Sub exit_Click() End End Sub
☆☆ 第11章多文档界面与工具栏设计
17
11.1.9 创建多文档界面应用程序的一般过程
1.创建MDI窗体 用户要建立一个MDI窗体,可以选择“工程”菜单中的 “添加MDI窗体”命令,会弹出“添加MDI窗体”对话框,
选择“新建MDI窗体”或“现存”的MDI窗体,再选择“打 开”按钮。 一个应用程序只能有一个MDI窗体,可以有多个MDI子 窗体。
☆☆ 第11章多文档界面与工具栏设计
27
12.3 状态栏
StatusBar 控件能提供一个长方条的框架—状态栏,通 常在窗体的底部,也可通过Align属性决定状态栏出现的位 置。用它可以显示出应用程序的运行状态,如光标位置、 系统时间、键盘的大小写状态等。
12.3.1
建立状态栏
在窗体上添加StatusBar控件。右键单击,打开属性页
☆☆ 第11章多文档界面与工具栏设计
19
3、 显示MDI窗体及其子窗体
显示任何窗体的方法为show,还有有关规则: (1)加载子窗体时,其父窗体会自动加载并显示;反之 则无。 (2)MDI窗体有AutoShowChildren属性,决定是否自 动显示子窗体
MDI窗体被卸载时,MDI窗体将触发QueryUnload事件, 通过编写MDI窗体的QueryUnload事件驱动子程序来保存信 息。 ☆☆ 第11章多文档界面与工具栏设计
☆☆ 第11章多文档界面与工具栏设计
9
11.1.4、MDI窗体的特点:
1. MDI窗体是子窗体的容器;
2. MDI窗体可以有自己的菜单,子窗体的菜单被迁移到 父窗体;
3. 在MDI窗体添加带有Align属性的控件;
4. 最大化MDI子窗体时,子窗体的标题显示在MDI窗体的 标题。 5. 一个工程中只允许有一个MDI窗体。 6. 当关闭MDI窗体时将自动关闭所有打开的子窗体。 ☆☆ 第11章多文档界面与工具栏设计
工具栏样式
☆☆ 第11章多文档界面与工具栏设计
23
2、在ImageList控件中添加图象
ImageList控件不单独使用,专门为其它控件提供图像库.
索引(Index)、 关键字(Key) 在ToolBar中引用 图象文件的扩展名 为: .ico、.bmp、.gif、.jpg等
☆☆ 第11章多文档界面与工具栏设计
10
11.1.5、MDI窗体的属性、方法:
MdiChild属性:为True表示子窗体,为False表示 非子窗体;该属性只能在属性窗口设置。 Arrange方法:窗口的排列方式。 MDI窗体. Arrange 方式
☆☆ 第11章多文档界面与工具栏设计
11
11.1.6、MDI窗体与子窗体的交互
MDI窗体类似于具有一个限制条件的普通窗体,除非 控件具有Align属性(如PictureBox控件)或者具有不可见界面 (如CommonDialog控件、Timer控件),不能将控件直接放置 在MDI窗体上。 ☆☆ 第11章多文档界面与工具栏设计 18
2. 创建和设计MDI子窗体 创建: MDI子窗体是一个MDIChild属性为True的普通窗 体。 要创建多个子窗体,通过窗体类来实现: Public Sub FileNewProc() Static No As Integer Dim NewDoc As New frmMDIChild No = No + 1 NewDoc.Caption = "no" & No NewDoc.Show End Sub
Style=1
Style=2
☆☆ 第11章多文档界面与工具栏设计
25
4、 响应ToolBar控件事件
Private Sub Toolbar1_ButtonClick(Byval Button As ComctlLib.Button) Select Case Button.Index Case 1 FileNewProc Case 2 FileOpenProc …… End Select End Sub
24
3 .为工具栏增加按钮
索引(Index)、关键字(Key)每个按钮 的编号、标识, ButtonClick事件中引用;
样式(Style),共5种
图象(Image) ImageList对象中的 图象,值可以是Key或Index 除菜单按钮(5)外的4种样式
Style=0
Style=3
Style=4
☆☆ 第11章多文档界面与工具栏设计
2
11.1 Windows界面样式
11.1.1 Windows界面样式的种类
Windows应用程序是以图形用户界面(GUI)为基础的,基本样式
主要有两种:单文档界面(SDI)和多文档界面(MDI),此外,还有 一种,即资源管理器样式。
1、单文档界面
在此方式下,只能打开一个文档。如Windows下的记事本。 2、多文档界面
Findstart = DocBox.SelStart
MDIForm1.StatusBar1.Panels(2).Text= Findstart