Visual Basic 程序设计教程 第十二讲 VB界面设计(1) 本章教学内容 6.1 通用对话框 6.2 菜单 6.3 多重窗体 本讲教学内容 介绍VB的通用对话框CommonDialog 控件、菜单编辑器。 6.1 通用对话框(CommonDialog) 一、 通用对话框概述 1.在图形用户界面中,对话框是用户与程序进行交 互的主要途径。VB的通用对话框CommonDialog 控件就是提供了基于Windows的标准对话框。 2.

Download Report

Transcript Visual Basic 程序设计教程 第十二讲 VB界面设计(1) 本章教学内容 6.1 通用对话框 6.2 菜单 6.3 多重窗体 本讲教学内容 介绍VB的通用对话框CommonDialog 控件、菜单编辑器。 6.1 通用对话框(CommonDialog) 一、 通用对话框概述 1.在图形用户界面中,对话框是用户与程序进行交 互的主要途径。VB的通用对话框CommonDialog 控件就是提供了基于Windows的标准对话框。 2.

Slide 1

Visual Basic
程序设计教程


Slide 2

第十二讲

VB界面设计(1)


Slide 3

本章教学内容
6.1 通用对话框
6.2 菜单
6.3 多重窗体


Slide 4

本讲教学内容
介绍VB的通用对话框CommonDialog
控件、菜单编辑器。


Slide 5

6.1 通用对话框(CommonDialog)
一、 通用对话框概述
1.在图形用户界面中,对话框是用户与程序进行交
互的主要途径。VB的通用对话框CommonDialog
控件就是提供了基于Windows的标准对话框。
2. CommonDialog控件不是VB的内部控件,它是
ActiveX控件。使用时选择“工程”菜单的“部件”命
令,来打开“部件”对话框。在其中选择“Microsoft
Common Dialog Control 6.0” 选 项 , 将
CommonDialog控件添加到工具箱。


Slide 6


Slide 7

3. VB通用对话框可以打开的Windows标准对话框
界面有:“打开”对话框,“另存为”对话框,“颜色”
对话框,“字体” 对话框,“打印” 对话框和“帮助”
对话框。
但VB的这些对话框仅用于返回信息,不能真
正实现文件的打开、文件的另存为、颜色设置、字
体设置、打印等操作。若要实现这些操作,一般
都要通过编程来解决。


Slide 8

4. 在使用通用对话框控件打开标准对话框
时,必须对它的一个Action属性进行设置或调用
该控件的Show方法,那样才能真正地打开标准对
话框中某一种类型的对话框。
通用对话框
打开对话框
另存为对话框

颜色对话框
字体对话框
打印 对话框
帮助 对话框

Show方法
ShowOpen
ShowSave
ShowColor
ShowFont
ShowPrint
ShowHelp

Action属性值
1
2
3
4
5
6


Slide 9

5. 在VB通用对话框的“取消”按钮,单击
时,表示用户取消当前操作。在取消当前操作时,
CancelError属性可以设置按“取消”按钮时是否产
生错误信息。
当CancelError属性为False时,单击该按钮不产
生错误信息;
当CancelError属性为True时,单击该按钮时通
用 对 话 框 会 自 动 将 错 误 对 象 Err.Number 设 置 为
32755(cdlCancel),供程序判断。


Slide 10

二、“打开”对话框
当在程序中把Action属性值设置为1时或
调用了ShowOpen方法,就可以打开通用对话框
的“打开”对话框。在“打开”对话框中,可以翻阅计
算机的整个目录结构,查找所需要的文件。但要真
正实现文件的打开需要设置几个必要的属性。


Slide 11

InitDir

FileName

FilterIndex

Filter


Slide 12

2. 常用属性
(1) FileName(文件名属性)
该属性值为字符串,用于设置和得到用户
所选的文件名(包括路径名)。
(2) FileTitle(文件名属性)
该属性设计时无效,在程序中为只读,用
于返回文件名。它与FileName属性不同,不
包含路径


Slide 13

(3) InitDir(初始化路径属性)
该属性用于指定初始的目录,或返回用户选择的
文件目录。如果此属性没有被指定,则使用当前目
录。
(4) Filter(过滤器属性)
该属性设置对话框的文件类型列表框中的过滤器。
通过设定过滤器指定在文件类型列表框中显示的文
件类型。
其格式为:文件说明|文件类型
例如:如果文件类型列表框中要显示Word文档、
文本文件和所有文件三种文件类型。


Slide 14

其格式为:
Word文档|*.Doc|文本文件|*.Txt|所有文
件|*.*
(5) FilterIndex(过滤器索引属性)
当指定一个以上的过滤器时,需使用该属性确定
哪一个作为默认过滤器显示,默认值为1。
【例6-1】设计一个应用程序,界面如下图1所示。
本例中要求对“打开文件”按钮进行编程。该程序功
能为:在打开对话框中选择一个文本文件,将该文
本文件的路径和名称显示在文本框中。


Slide 15

设计步骤:
①新建一个工程,设置窗体的Caption属性为“通
用对话框学习”。
②在窗体上添加4个命令按钮、1个文本框和一个
通用对话框。按图6.2所示设置文本框和命令按钮
的 属 性 , 并 将 命 令 按 钮 的 Name 属 性 依 次 改 为
“CmdOpen”、“CmdColor”、“CmdFont”和
“CmdHelp”。


Slide 16

③编写“打开文件”按钮的事件过程代码。
Private Sub CmdOpen_Click()
CommonDialog1.InitDir = "C:\WinNt"
CommonDialog1.Filter = "文本文件*.txt|*.txt"
CommonDialog1.Action = 1
Text1.Text = CommonDialog1.FileName
End Sub


Slide 17

④运行该应用程序,单击“文件打开”命
令按钮,出现如图2所示“打开”对话框,选择一
个文本文件名,按“确定”按钮出现如图3所示窗
体。

图2

图3


Slide 18

三、“另存为”对话框
1. 特点
当在程序中把Action属性值设置为2时或调用
了ShowSave方法,就可以打开通用对话框的“另
存为”对话框。在“另存为”对话框中,可以翻阅计
算机的整个目录结构,查找所需要的信息。
2. 常用属性
常用属性基本上与“打开”对话框相似,有一个
DefaultExt属性是“另存为”对话框所特有的,它表
示所存文件的默认扩展名。


Slide 19


Slide 20

四、“颜色”对话框

1. 特点
当在程序中把Action属性值设置为3时或调用
了ShowColor方法,就可以打开通用对话框的“颜
色”对话框。在“颜色”对话框的调色板中提供了基
本颜色,还提供了用户的自定义颜色,即用户可以
自己调色。
2. 常用属性
“颜色”对话框的常用属性是Color属性,当用户
在调色板中选定颜色后,该颜色值赋给Color属性。


Slide 21


Slide 22

【例6-2】编写例6-1应用程序中“背景颜
色”按钮程序代码。程序功能要求为:改变文本框
的背景颜色。
设计步骤:
①在例6-1代码窗口中添加“背景颜色”按钮程序代码
Private Sub CmdColor_Click()
CommonDialog1.ShowColor
Text1.BackColor = CommonDialog1.Color
End Sub
②运行该应用程序,单击“背景颜色”命令按钮,出现如
上图所示“颜色”对话框,选择一种颜色,按“确定”按钮,
文本框背景颜色即发生改变。


Slide 23

五、“字体”对话框
1. 特点
当在程序中把Action属性值设置为4时或调用
了ShowFont方法,就可以打开通用对话框的“字
体”对话框。在“字体”对话框中,拥有可供用户选
择的字体。
需要注意的是,在使用“字体”对话框之前,
必须设置Flags属性。假如没有设置Flags属性值,
则使用“字体”对话框时会显示错误提示。


Slide 24

2. Flags属性
属性



说明

CdlCFScreenFonts

1

屏幕字体

CdlCFPrinterFonts

2

打印机字体

CdlCFBoth

3

两者皆有

cdlCFEffects

100

出现删除线、下划线、颜色元素


Slide 25


Slide 26

【例6-3】编写例6-1应用程序中“修改字
体”按钮程序代码。程序功能要求为:改变文本框
的字体、字号。
设计步骤:
①在例6-1代码窗口中添加“修改字体”按钮程序代
码。


Slide 27

Private Sub CmdFont_Click()
CommonDialog1.Flags = cdlCFEffects Or
cdlCFBoth
CommonDialog1.ShowFont
Text1.FontName = CommonDialog1. FontName
Text1.FontBold = CommonDialog1.FontBold
Text1.FontItalic = CommonDialog1.FontItalic
Text1.FontSize = CommonDialog1.FontSize
Text1.FontUnderline =
CommonDialog1.FontUnderline
Text1.FontStrikethru =
CommonDialog1.FontStrikethru
Text1.ForeColor = CommonDialog1.Color
End Sub


Slide 28

六、“打印”对话框
当在程序中把Action属性值设置为5时或调用
了ShowPrinter方法,就可以打开通用对话框的
“打印”对话框,其界面如图所示。


Slide 29

需要注意的是,“打印”对话框不能直接处
理打印任务,它仅是一个供用户选择打印参数的界
面,所选参数存于各属性中,再由编程来处理打印
任务。属性如下表所示。
属性

说明

Copies

指定打印份数

FromPage

打印起始页号

ToPage

打印终止页号


Slide 30

七、“帮助”对话框
当在程序中把Action属性值设置为6时或调用
了ShowHelp方法,就可以打开通用对话框的“帮
助”对话框。 “帮助”对话框用于制作应用程序的联
机帮助,它可将已创建的帮助文件取出,并与界
面连接起来,达到显示并检索帮助信息的目的。


Slide 31

2. “帮助”对话框属性
属性

说明

HelpCommand

返回或设置所需要的联机帮助类型

HelpFile

指定帮助文件的路径及文件名

HelpKey

在帮助窗口中显示由该关键字指定
的帮助信息


Slide 32

【例6-4】 编写例6-1应用程序中“帮助”
按钮程序代码,要求打开“智能ABC”帮助信息。
设计步骤:
①在例6-1代码窗口添加“帮助”按钮程序代码。
Private Sub CmdHelp_Click()
CommonDialog1.HelpCommand =
cdlHelpContents
CommonDialog1.HelpFile =
"c:\windows\system32\winabc.hlp"
CommonDialog1.ShowHelp
End Sub


Slide 33

②运行该应用程序,单击“帮助”命令按钮,出现
如图所示“帮助”对话框。


Slide 34

6.2 菜单
一、 菜单设计
1.下拉式菜单系统的组成结构
主菜单条

主菜单名




快捷键
热键

子菜单名

分隔线

下级子菜
单标记


Slide 35

2.建立菜单可以通过“菜单编辑器”窗口来
完成。选择“工具”菜单的“菜单编辑器”命令,即
可打开如图所示的“菜单编辑器”窗口。

菜单项属性
编辑区
菜单列
表框


Slide 36

3. 菜单控件属性区
名称:用于输入菜单控件的名字,该名字在程序代
码中引用菜单控件。控件名是标识符,它不会出现
在菜单中。
标题:用于输入菜单标题及各菜单项的标题,同时
还可以在菜单中创建分隔条。
索引:用于在创建菜单控件数组时作为索引。
快捷键:允许为每个命令选定快捷键。
复选:选择该项时,可将一个复选框标志放置在菜
单上。(它只对子菜单项起作用)
有效及可见:


Slide 37

4. 编辑区(共有7个按钮)
左、右箭头:用来产生和消除内缩符号,即产生或
消除子菜单。
上、下箭头:每次单击都把选定的菜单项在同级菜
单内向上、下移动一个位置。
下一个:将选定移动到下一行。
插入:在列表框的当前行上方插入新的菜单项。
删除:删除当前选定的菜单项。


Slide 38

5. 菜单控件列表框区
(1) 列表框区是用来列出当前窗体的所有菜单控件
(2) 当在标题文本框中键入一个菜单项时,该项也
会出现在菜单控件列表框中。
(3) 在列表框中选取一个已存在的菜单控件,则可
以编辑该控件的属性。
(4) 菜单控件在列表框中的位置决定了该控件是菜
单标题、菜单项、子菜单标题还是子菜单项。


Slide 39

6. 菜单项的控制
(1) 有效性控制
菜单项的有效性可以通过菜单编辑器中的“有
效”按钮控制,也可以在程序代码中用菜单项的
Enabled属性来改变。
(2) 菜单项标记
菜单项的标记“√”,可以通过菜单编辑器中的
“复选”按钮控制,也可以在程序代码中用菜单项
的Checked属性来设置。


Slide 40

(3) 键盘选择
① 键盘选择即用键盘选取菜单。
② 用键盘选取菜单通常用两种方法:即快捷键和
访问键。
③ 设置访问键,可在菜单标题中的一个字母前插
入&符号。
例如:&File
④ 按上面格式定义菜单项之后,在程序运行时,
F下面加上一个下划线。按Alt+F即可选取该菜单
项,
⑤ 访问键只能是一个字母。


Slide 41

【例6-5】设计一个文本编辑应用程序,
界面如图所示。其中,“输入信息”菜单中有两个子
菜单“输入”和“退出”; “显示信息”菜单中有两个
子菜单“显示”和“清除”; “格式”菜单中有5个子菜
单“正常”、“粗体”、“斜体”、“下划线”和“字号
20”。


Slide 42

设计步骤:
①新建一个工程,设置窗体的Caption属性为“文
本编辑器”。
②在窗体上添加1个文本框,如上图所示。
③选择“工具”菜单中的“菜单编辑器”命令,打开
“菜单编辑器”对话框。
④在“菜单编辑器”中输入如下表所示菜单项属性



Slide 43

标题

名称

标题

名称

输入信息

InpInfo

格式

Format

输入

Input

正常

Normal

退出

Exit

粗体

Bold

显示信息

DisInfo

斜体

Italic

显示

Display

下划线

Under

清除

Clean

字号20

Font20


Slide 44

菜单项属性设置后“菜单编辑器”对话框如
图所示。


Slide 45

⑤设置窗体变量inptext:打开代码窗口,
在代码窗口顶部输入如下语句:
Dim inptext As String
⑥编写“输入信息”菜单中各子菜单事件过程代码。
Private Sub input_Click()
inpt = InputBox("请输入一段文字", "输入对话
框")
inptext = inptext & inpt
End Sub
Private Sub exit_Click()
End
End Sub


Slide 46

⑦编写“显示信息”菜单中各子菜单的事
件过程代码。
Private Sub display_Click()
Text1.Text = inptext
End Sub
Private Sub clean_Click()
Text1.Text = ""
End Sub


Slide 47

⑧编写“格式”菜单中各子菜单的事件过
程代码。
Private Sub normal_Click()
Text1.FontBold = False
Text1.FontItalic = False
Text1.FontUnderline = False
Text1.FontSize = 10
End Sub
Private Sub bold_Click()
Text1.FontBold = True
End Sub


Slide 48

Private Sub italic_Click()
Text1.FontItalic = True
End Sub
Private Sub under_Click()
Text1.FontUnderline = True
End Sub
Private Sub font20_Click()
Text1.FontSize = 20
End Sub


Slide 49

【例6-6】设计一个计算器应用程序,界面如图。
其中,“文件”菜单中有两个子菜单“运算”和“退出”;
在“运算”子菜单中又有四个下拉子菜单,分别为:
“+”、“-”、 “×”和“÷”。


Slide 50

设计步骤:
①新建一个工程,在窗体中添加三个文本框和
三个标签框,设置窗体的Caption属性为“计算器”,其界
面如上图所示。
②设置文本框的Text属性和标签框的Caption属性为空。
选择“工具”菜单的“菜单编辑器”命令,打开“菜单编辑器”,
并输入如表所示菜单项属性值:
标题
文件(&F)
运算


-

名称
File
Calc
Add
Sub
Bb

标题
×
÷
退出

名称
Mul
Div
Aa
Bold


Slide 51

菜单项属性设置后“菜单编辑器”对话框
如图所示。


Slide 52

③各菜单事件过程代码
Private Sub Add_Click() ‘ 加法菜单事件过程
Text3 = Val(Text1) + Val(Text2)
Label1 = "+"
Label2 = "="
Label3 = "加法运算"
End Sub


Slide 53

Private Sub Sub_Click() ‘ 减法菜单事件过程
Text3 = Val(Text1) - Val(Text2)
Label1 = "-"
Label2 = "="
Label3 = "减法运算"
End Sub


Slide 54

Private Sub Mul_Click() ‘ 乘法菜单事件过程
Text3 = Val(Text1) * Val(Text2)
Label1 = "×"
Label2 = "="
Label3 = "乘法运算"
End Sub


Slide 55

Private Sub Div_Click()
If Val(Text2) = 0 Then
MsgBox "除数不能为零,请重新输入!", 16,
"警告框"
Text2 = ""
Text2.SetFocus
Else
Text3 = Val(Text1) / Val(Text2)
Label1 = "÷"
Label2 = "="
Label3 = "除法运算"
End If
End Sub


Slide 56

Private Sub quit_Click()
End
End Sub
④单击“启动”按钮运行应用程序。在Text1文本框
中输入:25 ,在Text2文本框中输入:4 ,单击“×”
菜单,屏幕显示如图所示。


Slide 57

二、 弹出菜单设计
1. 弹出菜单的特点
弹出菜单是独立于窗体菜单而显示在窗体上的菜
单,其显示的位置取决于单击鼠标时指针的位置。
2. 创建弹出菜单分为两步:
①建立弹出菜单
建立弹出菜单与建立一般菜单相同,也使用菜
单编辑器。需要注意的是可以设置弹出菜单的顶层
菜单(主菜单项)为可见或不可见。


Slide 58

②设置弹出菜单显示方式
VB 提 供 了 PopupMenu 方 法 来 显 示 弹 出 菜 单 。
PopupMenu方法的使用形式:
[对象.] PopupMenu 菜单名,标志,x,y
其中:
标志:当标志为0时,弹出菜单的顶只能对鼠标左
键起反应;当标志为1时,弹出菜单的顶只能对鼠
标左键和右键都起反应;当标志为2时
PopupMenu方法只能用在MouseDown事件过程。


Slide 59

【例6-7】设置示例6-6中的“运算”子菜单为
弹出菜单
设计步骤:
①编写设置“运算”弹出菜单的事件过程代码。
Private Sub Form_MouseDown(Button As Integer,
Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu Calc, vbPopupMenuLeftAlign
End If
End Sub


Slide 60

②单击“启动”按钮运行应用程序。在
Text1文本框中输入:25,在Text2文本框中输入4。
③右单击计算器窗体,出现弹出菜单,如图所示。
单击“×”菜单,观察运算结果。