Download presentation
Presentation is loading. Please wait.
1
Visual Basic 程序设计教程
2
第十二讲 VB界面设计(1)
3
本章教学内容 6.1 通用对话框 6.2 菜单 6.3 多重窗体
4
本讲教学内容 介绍VB的通用对话框CommonDialog控件、菜单编辑器。
5
6.1 通用对话框(CommonDialog) 一、 通用对话框概述 1.在图形用户界面中,对话框是用户与程序进行交互的主要途径。VB的通用对话框CommonDialog控件就是提供了基于Windows的标准对话框。 2. CommonDialog控件不是VB的内部控件,它是ActiveX控件。使用时选择“工程”菜单的“部件”命令,来打开“部件”对话框。在其中选择“Microsoft Common Dialog Control 6.0”选项,将CommonDialog控件添加到工具箱。
7
3. VB通用对话框可以打开的Windows标准对话框界面有:“打开”对话框,“另存为”对话框,“颜色”对话框,“字体” 对话框,“打印” 对话框和“帮助” 对话框。
8
4. 在使用通用对话框控件打开标准对话框时,必须对它的一个Action属性进行设置或调用该控件的Show方法,那样才能真正地打开标准对话框中某一种类型的对话框。
打开对话框 ShowOpen 1 另存为对话框 ShowSave 2 颜色对话框 ShowColor 3 字体对话框 ShowFont 4 打印 对话框 ShowPrint 5 帮助 对话框 ShowHelp 6
9
5. 在VB通用对话框的“取消”按钮,单击时,表示用户取消当前操作。在取消当前操作时,CancelError属性可以设置按“取消”按钮时是否产生错误信息。
当CancelError属性为False时,单击该按钮不产生错误信息; 当CancelError属性为True时,单击该按钮时通用对话框会自动将错误对象Err.Number设置为32755(cdlCancel),供程序判断。
10
二、“打开”对话框 当在程序中把Action属性值设置为1时或调用了ShowOpen方法,就可以打开通用对话框的“打开”对话框。在“打开”对话框中,可以翻阅计算机的整个目录结构,查找所需要的文件。但要真正实现文件的打开需要设置几个必要的属性。
11
Filter FileName InitDir FilterIndex
12
2. 常用属性 (1) FileName(文件名属性) 该属性值为字符串,用于设置和得到用户所选的文件名(包括路径名)。 (2) FileTitle(文件名属性) 该属性设计时无效,在程序中为只读,用于返回文件名。它与FileName属性不同,不包含路径
13
(3) InitDir(初始化路径属性) 该属性用于指定初始的目录,或返回用户选择的文件目录。如果此属性没有被指定,则使用当前目录。 (4) Filter(过滤器属性) 该属性设置对话框的文件类型列表框中的过滤器。通过设定过滤器指定在文件类型列表框中显示的文件类型。 其格式为:文件说明|文件类型 例如:如果文件类型列表框中要显示Word文档、文本文件和所有文件三种文件类型。
14
其格式为: Word文档|*.Doc|文本文件|*.Txt|所有文件|*.* (5) FilterIndex(过滤器索引属性) 当指定一个以上的过滤器时,需使用该属性确定哪一个作为默认过滤器显示,默认值为1。 【例6-1】设计一个应用程序,界面如下图1所示。本例中要求对“打开文件”按钮进行编程。该程序功能为:在打开对话框中选择一个文本文件,将该文本文件的路径和名称显示在文本框中。
15
设计步骤: ①新建一个工程,设置窗体的Caption属性为“通用对话框学习”。 ②在窗体上添加4个命令按钮、1个文本框和一个通用对话框。按图6.2所示设置文本框和命令按钮的属性,并将命令按钮的Name属性依次改为“CmdOpen”、“CmdColor”、“CmdFont”和“CmdHelp”。
16
③编写“打开文件”按钮的事件过程代码。 Private Sub CmdOpen_Click() CommonDialog1.InitDir = "C:\WinNt" CommonDialog1.Filter = "文本文件*.txt|*.txt" CommonDialog1.Action = 1 Text1.Text = CommonDialog1.FileName End Sub
17
④运行该应用程序,单击“文件打开”命令按钮,出现如图2所示“打开”对话框,选择一个文本文件名,按“确定”按钮出现如图3所示窗体。
18
三、“另存为”对话框 1. 特点 当在程序中把Action属性值设置为2时或调用了ShowSave方法,就可以打开通用对话框的“另存为”对话框。在“另存为”对话框中,可以翻阅计算机的整个目录结构,查找所需要的信息。 2. 常用属性 常用属性基本上与“打开”对话框相似,有一个DefaultExt属性是“另存为”对话框所特有的,它表示所存文件的默认扩展名。
20
四、“颜色”对话框 1. 特点 当在程序中把Action属性值设置为3时或调用了ShowColor方法,就可以打开通用对话框的“颜色”对话框。在“颜色”对话框的调色板中提供了基本颜色,还提供了用户的自定义颜色,即用户可以自己调色。 2. 常用属性 “颜色”对话框的常用属性是Color属性,当用户在调色板中选定颜色后,该颜色值赋给Color属性。
22
【例6-2】编写例6-1应用程序中“背景颜色”按钮程序代码。程序功能要求为:改变文本框的背景颜色。
设计步骤: ①在例6-1代码窗口中添加“背景颜色”按钮程序代码 Private Sub CmdColor_Click() CommonDialog1.ShowColor Text1.BackColor = CommonDialog1.Color End Sub ②运行该应用程序,单击“背景颜色”命令按钮,出现如上图所示“颜色”对话框,选择一种颜色,按“确定”按钮,文本框背景颜色即发生改变。
23
五、“字体”对话框 1. 特点 当在程序中把Action属性值设置为4时或调用了ShowFont方法,就可以打开通用对话框的“字体”对话框。在“字体”对话框中,拥有可供用户选择的字体。 需要注意的是,在使用“字体”对话框之前,必须设置Flags属性。假如没有设置Flags属性值,则使用“字体”对话框时会显示错误提示。
24
2. Flags属性 属性 值 说明 CdlCFScreenFonts 1 屏幕字体 CdlCFPrinterFonts 2 打印机字体
CdlCFBoth 3 两者皆有 cdlCFEffects 100 出现删除线、下划线、颜色元素
26
【例6-3】编写例6-1应用程序中“修改字体”按钮程序代码。程序功能要求为:改变文本框的字体、字号。
设计步骤: ①在例6-1代码窗口中添加“修改字体”按钮程序代码。
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
28
六、“打印”对话框 当在程序中把Action属性值设置为5时或调用了ShowPrinter方法,就可以打开通用对话框的“打印”对话框,其界面如图所示。
29
需要注意的是,“打印”对话框不能直接处理打印任务,它仅是一个供用户选择打印参数的界面,所选参数存于各属性中,再由编程来处理打印任务。属性如下表所示。
说明 Copies 指定打印份数 FromPage 打印起始页号 ToPage 打印终止页号
30
七、“帮助”对话框 当在程序中把Action属性值设置为6时或调用了ShowHelp方法,就可以打开通用对话框的“帮助”对话框。 “帮助”对话框用于制作应用程序的联机帮助,它可将已创建的帮助文件取出,并与界面连接起来,达到显示并检索帮助信息的目的。
31
在帮助窗口中显示由该关键字指定的帮助信息
2. “帮助”对话框属性 属性 说明 HelpCommand 返回或设置所需要的联机帮助类型 HelpFile 指定帮助文件的路径及文件名 HelpKey 在帮助窗口中显示由该关键字指定的帮助信息
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
33
②运行该应用程序,单击“帮助”命令按钮,出现如图所示“帮助”对话框。
34
6.2 菜单 一、 菜单设计 1.下拉式菜单系统的组成结构 主菜单名 快捷键 热键 下级子菜单标记 主菜单条 分隔线 菜单项 子菜单名
35
2.建立菜单可以通过“菜单编辑器”窗口来完成。选择“工具”菜单的“菜单编辑器”命令,即可打开如图所示的“菜单编辑器”窗口。
菜单项属性 编辑区 菜单列表框
36
3. 菜单控件属性区 名称:用于输入菜单控件的名字,该名字在程序代码中引用菜单控件。控件名是标识符,它不会出现在菜单中。 标题:用于输入菜单标题及各菜单项的标题,同时还可以在菜单中创建分隔条。 索引:用于在创建菜单控件数组时作为索引。 快捷键:允许为每个命令选定快捷键。 复选:选择该项时,可将一个复选框标志放置在菜单上。(它只对子菜单项起作用) 有效及可见:
37
4. 编辑区(共有7个按钮) 左、右箭头:用来产生和消除内缩符号,即产生或消除子菜单。 上、下箭头:每次单击都把选定的菜单项在同级菜单内向上、下移动一个位置。 下一个:将选定移动到下一行。 插入:在列表框的当前行上方插入新的菜单项。 删除:删除当前选定的菜单项。
38
5. 菜单控件列表框区 (1) 列表框区是用来列出当前窗体的所有菜单控件 (2) 当在标题文本框中键入一个菜单项时,该项也会出现在菜单控件列表框中。 (3) 在列表框中选取一个已存在的菜单控件,则可以编辑该控件的属性。 (4) 菜单控件在列表框中的位置决定了该控件是菜单标题、菜单项、子菜单标题还是子菜单项。
39
6. 菜单项的控制 (1) 有效性控制 菜单项的有效性可以通过菜单编辑器中的“有效”按钮控制,也可以在程序代码中用菜单项的Enabled属性来改变。 (2) 菜单项标记 菜单项的标记“√”,可以通过菜单编辑器中的“复选”按钮控制,也可以在程序代码中用菜单项的Checked属性来设置。
40
(3) 键盘选择 ① 键盘选择即用键盘选取菜单。 ② 用键盘选取菜单通常用两种方法:即快捷键和访问键。 ③ 设置访问键,可在菜单标题中的一个字母前插入&符号。 例如:&File ④ 按上面格式定义菜单项之后,在程序运行时,F下面加上一个下划线。按Alt+F即可选取该菜单项, ⑤ 访问键只能是一个字母。
41
【例6-5】设计一个文本编辑应用程序,界面如图所示。其中,“输入信息”菜单中有两个子菜单“输入”和“退出”; “显示信息”菜单中有两个子菜单“显示”和“清除”; “格式”菜单中有5个子菜单“正常”、“粗体”、“斜体”、“下划线”和“字号20”。
42
设计步骤: ①新建一个工程,设置窗体的Caption属性为“文本编辑器”。 ②在窗体上添加1个文本框,如上图所示。 ③选择“工具”菜单中的“菜单编辑器”命令,打开“菜单编辑器”对话框。 ④在“菜单编辑器”中输入如下表所示菜单项属性值
43
标题 名称 输入信息 InpInfo 格式 Format 输入 Input 正常 Normal 退出 Exit 粗体 Bold 显示信息 DisInfo 斜体 Italic 显示 Display 下划线 Under 清除 Clean 字号20 Font20
44
菜单项属性设置后“菜单编辑器”对话框如图所示。
45
⑤设置窗体变量inptext:打开代码窗口,在代码窗口顶部输入如下语句:
Dim inptext As String ⑥编写“输入信息”菜单中各子菜单事件过程代码。 Private Sub input_Click() inpt = InputBox("请输入一段文字", "输入对话框") inptext = inptext & inpt End Sub Private Sub exit_Click() End
46
⑦编写“显示信息”菜单中各子菜单的事件过程代码。
Private Sub display_Click() Text1.Text = inptext End Sub Private Sub clean_Click() Text1.Text = ""
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
48
Private Sub italic_Click()
Text1.FontItalic = True End Sub Private Sub under_Click() Text1.FontUnderline = True Private Sub font20_Click() Text1.FontSize = 20
49
【例6-6】设计一个计算器应用程序,界面如图。其中,“文件”菜单中有两个子菜单“运算”和“退出”; 在“运算”子菜单中又有四个下拉子菜单,分别为:“+”、“-”、 “×”和“÷”。
50
①新建一个工程,在窗体中添加三个文本框和三个标签框,设置窗体的Caption属性为“计算器”,其界面如上图所示。
设计步骤: ①新建一个工程,在窗体中添加三个文本框和三个标签框,设置窗体的Caption属性为“计算器”,其界面如上图所示。 ②设置文本框的Text属性和标签框的Caption属性为空。选择“工具”菜单的“菜单编辑器”命令,打开“菜单编辑器”,并输入如表所示菜单项属性值: 标题 名称 文件(&F) File × Mul 运算 Calc ÷ Div + Add - Aa - Sub 退出 Bold Bb
51
菜单项属性设置后“菜单编辑器”对话框如图所示。
52
③各菜单事件过程代码 Private Sub Add_Click() ‘ 加法菜单事件过程 Text3 = Val(Text1) + Val(Text2) Label1 = "+" Label2 = "=" Label3 = "加法运算" End Sub
53
Private Sub Sub_Click() ‘ 减法菜单事件过程
Text3 = Val(Text1) - Val(Text2) Label1 = "-" Label2 = "=" Label3 = "减法运算" End Sub
54
Private Sub Mul_Click() ‘ 乘法菜单事件过程
Text3 = Val(Text1) * Val(Text2) Label1 = "×" Label2 = "=" Label3 = "乘法运算" End Sub
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
56
Private Sub quit_Click()
End End Sub ④单击“启动”按钮运行应用程序。在Text1文本框中输入:25 ,在Text2文本框中输入:4 ,单击“×”菜单,屏幕显示如图所示。
57
二、 弹出菜单设计 1. 弹出菜单的特点 弹出菜单是独立于窗体菜单而显示在窗体上的菜单,其显示的位置取决于单击鼠标时指针的位置。 2. 创建弹出菜单分为两步: ①建立弹出菜单 建立弹出菜单与建立一般菜单相同,也使用菜单编辑器。需要注意的是可以设置弹出菜单的顶层菜单(主菜单项)为可见或不可见。
58
②设置弹出菜单显示方式 VB提供了PopupMenu方法来显示弹出菜单。PopupMenu方法的使用形式: [对象.] PopupMenu 菜单名,标志,x,y 其中: 标志:当标志为0时,弹出菜单的顶只能对鼠标左键起反应;当标志为1时,弹出菜单的顶只能对鼠标左键和右键都起反应;当标志为2时PopupMenu方法只能用在MouseDown事件过程。
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
60
②单击“启动”按钮运行应用程序。在Text1文本框中输入:25,在Text2文本框中输入4。
③右单击计算器窗体,出现弹出菜单,如图所示。单击“×”菜单,观察运算结果。
Similar presentations