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