第 12章 菜单与对话框本章的学习要点用菜单编辑器建立菜单菜单项的控制
(1)有效性控制
(2)菜单项标记
(3)键盘选择菜单项的增减文件对话框其它对话框 (,颜色,,,字体,,,打印,对话框 )
12.1.1下拉式菜单
下拉式菜单的主菜单显示在菜单条里,VB中包含了 13
个主菜单,如图 12-1 所示。
当程序执行时用鼠标或键盘选择某个菜单项会弹出下拉子菜单。例如 VB中单击“文件”主菜单或利用
,Alt” +,F” 键的组合可以弹出文件的下拉子菜单。
在某些菜单项中还包含有分隔条,利用分隔条可将不同功能菜单项进行分隔。菜单项还可包含快捷键和热键,利用快捷键和热键的正确使用可以直接利用键盘调用对应的功能,提高操作速度。
下拉式菜单
菜单显示在窗体中,因此菜单的设置也和其他控件一样在窗体内进行。 VB为用户提供了菜单编辑器。打开菜单编辑器的方法有如下几种:
1.在 VB中单击“工具”菜单中的“菜单编辑器”子菜单;
2.利用,Ctrl” +,E” 键的组合;
3.在需要建立菜单的窗体上右击,在弹出的菜单中选择“菜单编辑器”命令;
4.单击工具栏中的“菜单编辑器” 快捷按钮。
用上述任一方法打开的“菜单编辑器”的对话框,如图 12-2所示。
下拉式菜单下拉式菜单
利用菜单编辑器,可以对窗体中所需的菜单各项属性进行设置。菜单编辑器具体可分为 3个部分,上部为属性设置区,用来对菜单项进行标题、名称等的属性设置;中部为编辑区,包含 7个按钮,用来对输入的菜单项进行简单的编辑;下部为菜单项显示区,前面所编辑的菜单项在此处显示。
下拉式菜单
1.属性设置区:
(1),标题”
(2),名称”
(3),索引”
(4),快捷键”
(5),复选”
(6),有效”
(7),可见”
(8),帮助上下文”
(9),协调位置”
下拉式菜单
2.编辑区
(1)
用于调整菜单项的级别,单击一次 按钮,
则产生一个内缩符号,?”,表示为上一级的子菜单;单击一次,删除一个内缩符号,则该菜单项被提高一个级别。菜单项的级别最多可以设置 6级。
(2)
通过单击 或 按钮可将当前被选择的菜单项在同级里向上或向下移动一个位置。
下拉式菜单
2.编辑区
(3),下一个”
介绍当前菜单项的编辑进入下一菜单项的编辑。
(4),插入”
在当前菜单项的前面插入一个空白菜单项。
(5),删除”
删除当前菜单项。
下拉式菜单
3.菜单项显示区
该区域用于显示输入的菜单项,编辑好的菜单项可通过内缩符号表明其层次,如图 12-3所示:编辑为主菜单,其下有 4个子菜单,而字体子菜单下还有 3个二级菜单。
下拉式菜单
例 12.1设计一个包含菜单的窗体,其中主菜单为文件和编辑菜单,文件菜单包含新建、打开、保存、退出四个下拉菜单,编辑菜单包含剪切、复制、粘贴和字体四个下拉菜单,字体菜单又包含黑体、宋体、楷书三个下拉菜单。具体设计完毕后效果如图 12-4所示。
下拉式菜单
1.建立菜单标题 名称 上级菜单 热键 快捷键文件 mnuFile 无 F 无新建 mnuFileNew 文件 N Ctrl+ N
打开 mnuFileOpen 文件 O Ctrl+ O
保存 mnuFileSave 文件 S Ctrl+ S
- mnuFileBar 文件 无 无退出 mnuFileQuit 文件 Q Ctrl+ Q
编辑 mnuEdit 无 E 无剪切 mnuEditCut 编辑 无 Ctrl+ X
复制 mnuEditCopy 编辑 无 Ctrl+ C
粘贴 mnuEditPaste 编辑 无 Ctrl+ V
字体 mnuEditFont 编辑 无 Ctrl+ F
黑体 Font1 字体 无 无宋体 Font2 字体 无 无楷体 Font3 字体 无 无下拉式菜单
2.编写代码菜单设置好后,需要给每个需要完成某些功能的菜单项编写对应的代码。给例 12-1的窗体内添加一个文本框 Text1,Text1的属性如表 12- 2所示。
对象名 属性 属性值
Text
Name Text1
Text 清空
MultiLine True
ScrollBar 3-both
下拉式菜单
单击“编辑”菜单下的“字体”子菜单,选择“黑体”,弹出对应的
“单击”事件代码编辑窗口,下面为“黑体”子菜单编写代码如下:
Private Sub Font1_Click()
Text1.Font = "黑体 "
End Sub
此处黑体菜单的名称即为在设计时输入的名称,Font1” 。
按照上述步骤依次选择“宋体”、“楷体”子菜单,完成相应的代码编写。具体代码如下:
Private Sub Font2_Click()
Text1.Font = "宋体 "
End Sub
Private Sub Font3_Click()
Text1.Font = "楷体 _Gb2312"
End Sub
下拉式菜单
运行时可通过字体菜单修改文本中输入文字的字体。
运行的各种结果如图 12-5所示。
下拉式菜单
例 12.2设计一个具有加、减、乘、除、清除和退出功能的程序。
思路:在第 4章中曾利用单选按钮完成过该例部分功能,此处利用菜单来完成全部功能。该例的设计界面如图 12-6 所示:
下拉式菜单
属性设置标题 名称 上级菜单 快捷键计算 1 js1 无 无加 add 计算 1 Ctrl+ A
减 Sub 计算 1 Ctrl+ B
计算 2 Js2 无 无乘 Mul 计算 2 Ctrl+ C
除 Div 计算 2 Ctrl+ D
其他 Other 无 无清除 Clear 其他 Ctrl+ E
退出 Exit 其他 Ctrl+ F
下拉式菜单下拉式菜单
在用户界面设计状态单击某一菜单项,编辑窗口出现该菜单 Click事件过程的代码,可在其中输入要执行的代码。
各菜单项对应的代码如下:
Private Sub add_Click() '加法
x = Val(Text1.Text) + Val(Text2.Text)
Text3.Text = Str(x)
End Sub
Private Sub clear_Click() '清除
Text1 = "",Text2 = "",Text3 = ""
Text1.SetFocus
End Sub
下拉式菜单
Private Sub div_Click() '除法
If Val(Text2.Text) <> 0 Then '除数是否为 0的判断
x = Val(Text1.Text) / Val(Text2.Text)
Text3.Text = Str(x)
Else
MsgBox "除数不能为 0!请重新输入! "
Text2.Text = ""
Text2.SetFocus
End If
End Sub
下拉式菜单
Private Sub exit_Click() '退出
End
End Sub
Private Sub mul_Click() '乘法
x = Val(Text1.Text) * Val(Text2.Text)
Text3.Text = Str(x)
End Sub
Private Sub sub_Click() '减法
x = Val(Text1.Text) - Val(Text2.Text)
Text3.Text = Str(x)
弹出式菜单设计
右击窗体时弹出的菜单为弹出式菜单,一般集合了很多常用的操作。弹出式菜单没有主菜单名,只有在使用时才会在窗体上浮动显示。例如在 VB的设计窗体中单击右键,弹出的菜单如图 12-8所示。
弹出式菜单设计依然要使用菜单编辑器,只需在设计时将菜单的可见属性设置为 False即可。
弹出式菜单设计
例 12.3在例 12-1的基础上增加一个快捷编辑菜单,包含“剪切”、“复制”和“粘贴”功能,右击窗体时弹出该快捷菜单。
操作步骤:
1.在菜单编辑器里新增一个菜单,保证该菜单为顶层菜单项,即无缩进符号。标题设定为,Edit”,
该标题和名称可任意设定,因为它在快捷菜单弹出时不显示。
2.将,Edit” 菜单的可见属性设置为 False。
3.单击“下一个”命令按钮,标题文本框中输入
“剪切”,编辑对应的名称,单击按钮,将“剪切”
菜单设置为,Edit” 菜单的下一级菜单。
弹出式菜单设计
4.参照步骤 3完成“复制”和“粘贴”菜单的设置。
5.在 VB中,需要使用 PopupMenu方法来显示弹出式菜单。其语法格式如下:
[对象 ].PopupMenu 菜单名,标志,X,Y
其中对象为可选项,默认为 Form对象;菜单名是必须的,被指定的菜单必须至少包含一个子菜单;标志参数及 X,Y的值的作用是详细定义弹出式菜单的弹出位置,当标志等于 0时,为系统的默认状态,X
放映的是弹出菜单的左边界,当标志等于 4时,X放映的是弹出菜单的中心位置,当标志等于 8时,X放映的是弹出菜单的右边界。
弹出式菜单设计
因此需要在窗体的 MouseUp事件里编写对应的代码。
注意只有在窗体上单击鼠标右键时才会弹出快捷菜单。
具体代码如下:
Private Sub Form_MouseUp(Button As Integer,
Shift As Integer,X As Single,Y As Single)
If Button = 2 Then '若单击鼠标右键
PopupMenu Edit '弹出 edit快捷菜单
End If
End Sub
通用对话框
VB6.0为用户提供了一组基于 Windows标准的对话框,
称为通用对话框,即 CommonDialog。包括“打开”对话框、“另存为”对话框、“颜色”对话框、“字体”
对话框、“打印”对话框以及“帮助”对话框。
通用对话框不是标准控件,使用时必须先将该控件添加到工具箱里。将 CommonDialog添加到工具箱里的步骤如下:
1.选择“工程”下拉菜单中的“部件”子菜单,
弹出“部件”对话框。
2.在“部件”对话框列表中选择,Microsoft
Common Dialog Control6.0” 项目,确保其前方的复选框内出现,√,。
3.单击确定按钮。添加完成后工具箱里出现
CommonDialog的图标。具体操作如图 12-10 所示。
通用对话框
通用对话框常用的属性有名称属性和 Action属性等。
系统默认的通用对话框名称为 CommonDialog1、
CommonDialog2 。 Action属性决定程序打开什么类型的对话框。具体 Action属性、含义及对应的方法。
Action属性 含义 对应方法
0 无对话框显示
1,打开,对话框
ShowOpen
2,另存为,对话框
ShowSave
3,颜色,对话框
ShowColor
4,字体,对话框
ShowFont
通用对话框
把 CommonDialog控件添加到窗体后,就意味着上述各种标准对话框可以被使用了。当某一时刻需要用到某个对话框时,必须通过设置 Action属性或 VB6.0的方法才能使之显示在屏幕上。
例如要显示“打开”对话框,在程序中利用设置
Action属性则对应语句如下:
CommonDialog1.Action=1
也可在程序中用控件的方法完成对话框的显示。
CommonDialog1.ShowSave
通用对话框
1文件对话框
文件对话框包括“打开”和“另存为”对话框。使用“打开”、“另存为”对话框可以设置文件对话框的属性。文件对话框属性页中的属性和含义如表 12-5所示。
属性标题 属性名称 含义对话框标题 DialogTitle 设置对话框的标题,默认值为“打开”或“另存为”
文件名称 FileName 设置对话框中“文件名称”的默认值,并返回用户所选中的文件名(包括完整的路径名)
初始化路径 InitDir 设置初始化的文件目录,并返回用户所选择的目录,默认为当前目录过滤器 Filter 设置显示文件的类型。格式为:描述 |通配符 |
过滤器索引 FilterIndex 设置文件对话框中默认过滤器的索引标志 Flags 设置对话框的一些选项,可以是多个值的组合。如 1,显示只读复选框默认扩展名 DefaultExt 为对话框返回或设置默认的文件扩展名文件最大长度 MaxFileSize 设置被打开文件的最大长度,取值范围 1~ 2k,默认为 260
例如:
CommonDialog1.Fi ter=”All Files(*.*)|*.*| 位图 (*.bmp)|
*.bmp|” ’ 设置对话框的过滤器
CommonDialog2.DialogTitle=” 选择文件” ’ 设置对话框的标题通用对话框
例 12.4 将例 12-1 里“新建”和“打开”菜单功能补充完整。
注意,先将通用对话框添加到工具箱里,再将
CommonDialog控件添加到窗体上。在窗体上单击各菜单项,完成下述代码,
Private Sub mnuFileNew_Click() '新建菜单
CommonDialog1.ShowSave
Text1.Text = ""
Form1.Caption = "新建文件 "
End Sub
通用对话框
Private Sub mnuFileOpen_Click() '打开菜单
Dim Filename As String,m As String
Filename = ""
CommonDialog1.ShowOpen
CommonDialog1.Filter = "Text(*,txt)|*.txt"
Filename = CommonDialog1.Filename
If Filename = "" Then
MsgBox "no file open",vbExclamation + vbOKOnly,"System"
Else
MsgBox "you open" + Filename + "!",vbInformation,"System"
End If
Open CommonDialog1.Filename For Input As #1 '将文件打开
Input #1,m '将文件内容读入到文本框里
Text1.Text = m
Close #1
End Sub
通用对话框
Private Sub mnuFileSave_Click() '保存菜单
CommonDialog1.Action = 2
Open CommonDialog1.Filename For Output As #1
Print #1,Text1.Text
Close #1
End Sub
通用对话框
某次单击“新建”菜单时弹出的对话框和 Windows默认风格一致。
其他对话框
1.颜色对话框使用“颜色”对话框可设置颜色属性,对应的 Windows
颜色对话框如图 12-12 所示。其属性和含义如表 12-6 所示。
属性标题属性名称 含义颜色 Color 设置初始颜色,并返回用户选择的颜色标志 Flags
设置对话框的一些选项,可以是多个值的组合。例如 1
表示首次打开颜色对话框。
其他对话框
例如:
Commondialog1.Showcolor
Form1.BackColor=CommonDialog1.Color
表示将用户在“颜色”对话框中设置的颜色作为窗体背景色。
其他对话框
2.字体对话框使用“字体”对话框可设置字体属性。其属性和含义如表 12-7 所示。
属性标题 属性名称 含义字体名称 FontName 设置字体名称中的初始字体,并返回用户所选择的字体名称字体大小 FontSize 设置初始字体大小,并返回用户选择的字体大小,默认为 8
样式 FontBold 设置字体风格,并可返回用户选中的字体风格。FontBold返回在字体对话框中是否选中了粗体字样式 FontItalic 返回在字体对话框中是否选中了斜体字样式 FontUnderline 返回在字体对话框中是否选中了下划线样式 FontStrikethru 返回在字体对话框中是否选中了删除线其他对话框
例如:
CommonDialog1.ShowFont
Text1.FontName = CommonDialog1.Filename
表示将用户在“字体”对话框中设置的字体作为文本框的字体。
其他对话框
例 12.5 利用颜色对话框和字体对话框设置文本框中文字的颜色和字体。
在窗体上放置一个文本框,两个命令按钮和一个通用对话框,控件属性如表。
其他对话框对象名 属性 属性值
Command
Button
Name Command1
Caption 文字颜色
Command
Button
Name Command2
Caption 字体设置
Text
Name Text1
Multiline True
Text 但愿人长久 (Ctrl+回车 )
千里共婵娟
Font 宋体粗体三号
CommonDialog Name CommonDialog1
其他对话框
Private Sub Command1_Click()
CommonDialog1.ShowColor ′ 显示颜色对话框
Text1.ForeColor = CommonDialog1.Color ′ 颜色设置
End Sub
Private Sub Command2_Click()
CommonDialog1.ShowFont '显示字体对话框。
Text1.FontName = CommonDialog1.FileName ′ 设置字体
Text1.FontSize = CommonDialog1.FontSize ′ 设置字体大小
Text1.FontBold = CommonDialog1.FontBold ′ 设置是否粗体
Text1.FontItalic = CommonDialog1.FontItalic ′ 是否斜体
Text1.FontUnderline = CommonDialog1.FontUnderline ′ 是否有下划线
End Sub
其他对话框
3.打印对话框使用,打印,对话框可设置打印属性。
属性标题 属性名称 含义复制 Copies 设置打印的份数最小 Min 设置打印的最小页数最大 Max 设置打印的最大页数起始页 /终止页 FromPage/ToPage 设置要打印的起始 /终止页