第五章 菜 单 设 计
5.1 菜单简介
菜单为软件提供人机对话界面,以便让
软件用户选择应用各种功能,同时管理应用
系统,控制各功能模块的运行。
Windows系统中的菜单可分为下拉式菜
单和弹出式菜单两种类型。
5.2 菜单编辑器
程序设计中需要往窗体上添加菜单时,
需要使用 Visual Basic自带的菜单编辑器,即
菜单设计窗口来实现。
1.“标题”输入框
2.“名称”输入框
3.“索引”输入框
4.“快捷键”输入框
5.“帮助上下文 ID”输入框
6.“协调位置”列表框
7.“复选”复选框
8.“有效”复选框
9.“可见”复选框
10.“显示窗口列表”复选框
11,箭头按钮
5.3 用菜单编辑器建立菜单
不管菜单多么复杂,都可以通过菜单设计
的基本方法和步骤设计出来。建立一个菜单,首
先要列出菜单的组成,然后在, 菜单编辑器, 窗
口按着菜单组成进行设计。设计完后,再把各菜
单项与代码连接起来。
5.3.1.界面设计 (应用菜单编辑器 )
5.3.2.编写程序代码
每个菜单项(主菜单项或子菜单项)都可以
接受 Click事件,把每个菜单项的名字 Name与
Click放在一起,就可以组成该菜单项的 Click事
件过程。
[例 5.1] 设计程序,通过菜单控制文本框中文
本的字体格式和颜色等。将文本框 MultiLine
属性设为 True,以使文本框可以显示多行文
本,文本框中的字体为三号宋体。
5.4 定制图形菜单
许多应用软件的菜单项内容除了文字外,
大都带有漂亮的图标,不但美化了菜单界面,
而且可以帮助用户理解菜单的作用。我们也
可以通过在菜单项中添加位图的方式美化我
们的菜单。
菜单编辑器中没有直接添加图标的功能,
需要借助 Windows API函数往菜单项中添加图
标。
定制图形菜单的方法,步骤如下:
(1)打开菜单编辑器,建立菜单项,并在窗
体上添加 Image控件,同时设置菜单项和控件
属性 。
(2)在代码窗口中声明 API函数。 Windows
API函数实际上就是系统已经定义好的,能够
实现某些特殊功能的函数。在 VB中使用 API函
数前要进行函数声明。 通过 API函数能让我们
在菜单项中添加位图 。
(3)为窗体加载事件过程编写代码:
函数 SetMenuItemBitmaps(sHandle,0,
MF_BYPOSITION,imOpen.Picture,
imOpen.Picture)中的的各参数 sHandle为菜单句
柄,0表示菜单中各菜单项的索引,本例中,
“打开”菜单项索引为 0,“保存”菜单项索引
为 1,分隔线索引号为 2,依次类推。设置
wFlags为 MF_BYPOSITION( &H400&),最后
分别设定菜单项在 UnChecked状态和 Checked状
态时显示的位图,此处不区分两种状态下的位图
变化。
5.5 弹出式菜单
实际应用中,除下拉式菜单外,Windows
还广泛应用弹出式菜单,一般在应用程序窗口
或对象上单击鼠标右键都可以显示一个弹出菜
单。跟下拉式菜单相比,弹出式菜单可以在窗
口的任意位置打开,使用方便,具有较大的灵
活性。
弹出式菜单也要通过菜单编辑器建立,然
后用 PopupMenu方法弹出显示。菜单的建立方
法同前面相同,但设计快捷菜单时,要将主菜
单的“可见”复选框设为不选中,子菜单项的
“可见”复选框设为选中。
? PopupMenu方法显示弹出式菜单,其使用格式
为:
? 对象,PopupMenu 菜单名,Flags,X,Y,
BoldCommand
? 方法具有 6个参数,其中“菜单名”是菜单编辑
器中定义的主菜单名; X,Y为弹出式菜单在窗
体上的显示位置(与 Flags参数配合使用);
BoldCommand用来在弹出式菜单中显示一个菜
单控制; Flags参数是一个数值或符号变常量,
用来指定弹出式菜单的位置及行为。这些参数除
了“菜单名”是必需的外,其它的都是可选的。
省略“对象”时,弹出式菜单只在窗体上显示。
为了显示弹出式菜单,通常把 PopupMenu
方法放在 MouseDown事件中,该事件响应所
有的鼠标单击操作。一般情况下,单击鼠标右
键显示弹出式菜单,可以通过设定 Button参数
来实现,普通两键鼠标,左键的参数值为 1,
右键的参数值为 2。
[例 5-2] 建立一弹出式菜单,调用 Word,Excel
和 PowerPoint等应用软件,通过下拉式菜单调
用纸牌和扫雷等外部程序。