版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第9章章 菜单与工具栏设计菜单与工具栏设计主要内容主要内容:1.菜单设计菜单设计2.弹出式菜单设计弹出式菜单设计3.工具栏设计工具栏设计4.状态栏设计状态栏设计9.1 菜菜 单单 设设 计计 在在Windows中,菜单可以分为两种基本类型:中,菜单可以分为两种基本类型:下拉式菜单和弹出式菜单。下拉式菜单一般通过下拉式菜单和弹出式菜单。下拉式菜单一般通过单击菜单栏中菜单名称的方式打开,而弹出式菜单击菜单栏中菜单名称的方式打开,而弹出式菜单一般通过在某一区域右击的方式打开。单一般通过在某一区域右击的方式打开。如图如图9-1所示,分别是所示,分别是VB“工程工程”菜单的下拉式菜单和窗菜单的下拉式菜
2、单和窗体的弹出式菜单。体的弹出式菜单。 9.1.1 任务一任务一 菜单控件菜单控件 在在Visual Basic中,菜单也是一个图形中,菜单也是一个图形对象,即控件。与其他控件一样,菜单对象,即控件。与其他控件一样,菜单也需要定义它的外观和属性。在设计菜也需要定义它的外观和属性。在设计菜单和运行菜单时可以设置菜单的单和运行菜单时可以设置菜单的Caption属性、属性、Enable属性、属性、Visible属性、属性、Checked属性及其他属性。每个菜单项都属性及其他属性。每个菜单项都可以接收可以接收Click事件,当用鼠标或键盘选事件,当用鼠标或键盘选中该菜单项时,将调用该事件。中该菜单项时
3、,将调用该事件。9.1.2 任务二任务二 菜单编辑器菜单编辑器 Visual Basic中,用菜单编辑器设计菜单和菜中,用菜单编辑器设计菜单和菜单项,或在已有的菜单上添加新菜单项、编辑单项,或在已有的菜单上添加新菜单项、编辑已有的菜单选项以及修改和删除已有的菜单和已有的菜单选项以及修改和删除已有的菜单和菜单项。菜单项。进入菜单编辑器的方式有如下几种:进入菜单编辑器的方式有如下几种: l l 选择选择“工具工具”“菜单编辑器菜单编辑器”命令;命令; l l 单击常用工具栏中的单击常用工具栏中的“菜单编辑器菜单编辑器”按钮;按钮; l l 按按Ctrl+ECtrl+E组合键;组合键; l l 在要
4、建立菜单的窗体(此窗体为活动窗体)在要建立菜单的窗体(此窗体为活动窗体)上右击,在弹出的快捷菜单中选择上右击,在弹出的快捷菜单中选择 “菜单编辑菜单编辑器器”命令。弹出命令。弹出“菜单编辑器菜单编辑器”对话框,如图对话框,如图9-2所示。所示。 图图9-2 9-2 “菜单编辑器菜单编辑器”对话框对话框组成元素组成元素作用作用标题(标题(Caption)文本框)文本框用来输入显示在窗体上的用户建立的菜单标题。用来输入显示在窗体上的用户建立的菜单标题。名称(名称(NameName)文本框)文本框用来输入菜单项的名称。用来输入菜单项的名称。索引(索引(Index)文本框)文本框用来输入用来输入men
5、u控件数组元素的下标。控件数组元素的下标。快捷键(快捷键(Shortcut)列表)列表框框供用户在列表中为菜单项选择一个快捷键。供用户在列表中为菜单项选择一个快捷键。复选(复选(Checked)复选框)复选框“复选复选”属性设置为属性设置为True时,可以在相应的菜单项左侧加上一个时,可以在相应的菜单项左侧加上一个“”号。号。有效(有效(Enabled)复选框)复选框“有效有效”属性决定菜单项是否有效。属性决定菜单项是否有效。可见(可见(Visible)复选框)复选框“可见可见”属性决定菜单项是否可见。属性决定菜单项是否可见。“”和和“”按钮按钮调整菜单项级别。调整菜单项级别。“”和和“”按钮
6、按钮调整菜单中各菜单项的顺序。调整菜单中各菜单项的顺序。“下一个下一个”按钮按钮使得下一个菜单项进入编辑状态。使得下一个菜单项进入编辑状态。“插入插入”按钮按钮在选定的菜单项之前插入和该菜单项级别相同的菜单项。在选定的菜单项之前插入和该菜单项级别相同的菜单项。“删除删除”按钮按钮删除选定的菜单项。删除选定的菜单项。菜单显示区域菜单显示区域该区域用来显示用户为某一窗体设计的所有菜单项的标题。该区域用来显示用户为某一窗体设计的所有菜单项的标题。“菜单编辑器”的组成元素及其作用 “菜单编辑器菜单编辑器”窗口分为窗口分为3 3部分:数据区、编辑区部分:数据区、编辑区和菜单项显示区。现分别介绍各部分的功
7、能。和菜单项显示区。现分别介绍各部分的功能。1数据区数据区 数据区是菜单控件的属性区,用于输入和修改数据区是菜单控件的属性区,用于输入和修改菜单项、设置菜单项的属性。由菜单项、设置菜单项的属性。由1010个部分组成,个部分组成,各部分的作用如下。各部分的作用如下。 (1)标题:)标题:此文本框用于输入所建立菜单此文本框用于输入所建立菜单的标题及菜单中每个菜单项的标题(相当于菜单的标题及菜单中每个菜单项的标题(相当于菜单控件的控件的Caption属性),也是显示在菜单中的字属性),也是显示在菜单中的字符,可以在标题中设置热键。如果要在菜单中添符,可以在标题中设置热键。如果要在菜单中添加一条分隔线
8、,就在此输入一个减号(加一条分隔线,就在此输入一个减号(- -)。)。 (2 2)名称:)名称:此文本框用于输入所建立的菜单此文本框用于输入所建立的菜单和各菜单项的控制名(即菜单控件的和各菜单项的控制名(即菜单控件的NameName属属性),此项不在菜单中显示出来。性),此项不在菜单中显示出来。Visual Visual BasicBasic中的菜单和每个菜单项都是控件,所以都中的菜单和每个菜单项都是控件,所以都要有一个控制名(其要有一个控制名(其NameName属性)。属性)。 (3 3)索引:)索引:此文本框用来为用户建立的控件此文本框用来为用户建立的控件数组设立下标,相当于控件数组的数组
9、设立下标,相当于控件数组的IndexIndex属性。属性。 (4)快捷键:)快捷键:此下拉列表框用来设置与某菜此下拉列表框用来设置与某菜单项等价的快捷键。在程序运行时,按下快捷键单项等价的快捷键。在程序运行时,按下快捷键会立刻运行一个菜单项。快捷键的赋值包括功能会立刻运行一个菜单项。快捷键的赋值包括功能键与控制键的组合,它们出现在菜单中相应菜单键与控制键的组合,它们出现在菜单中相应菜单项的右边。项的右边。 (5 5)帮助上下文:)帮助上下文:此文本框用于输入在帮助文此文本框用于输入在帮助文件(用件(用HelpFileHelpFile属性设置)中查找相应的帮助主题属性设置)中查找相应的帮助主题的
10、数值。的数值。 (6 6)协调位置:)协调位置:此下拉列表框用于确定相应的此下拉列表框用于确定相应的菜单或菜单项的显示位置。该下拉列表框中有菜单或菜单项的显示位置。该下拉列表框中有4 4个选个选项,其作用如下:项,其作用如下: l l 0-None0-None菜单项不显示;菜单项不显示; l l 1-Left1-Left菜单项靠左显示;菜单项靠左显示; l l 2-Middle2-Middle菜单项居中显示;菜单项居中显示; l l 3-Right3-Right菜单项靠右显示。菜单项靠右显示。 (7 7)复选:)复选:此复选框用于设置该菜单项标记此复选框用于设置该菜单项标记(即菜单项的(即菜单
11、项的CheckedChecked属性),此选项通常是动态属性),此选项通常是动态地加上或取消的,一般应当在程序代码中,根据执地加上或取消的,一般应当在程序代码中,根据执行情况设置。当行情况设置。当“复选复选”属性设置为属性设置为TrueTrue时,可在时,可在相应的菜单项旁加上标记相应的菜单项旁加上标记,表明该菜单项当前处,表明该菜单项当前处于活动状态。于活动状态。 (8 8)有效:)有效:该复选框用于设置菜单项的操作状该复选框用于设置菜单项的操作状态(即态(即EnableEnable属性)。默认情况下,该属性为属性)。默认情况下,该属性为TrueTrue,表示该选项为有效,可以对用户事件做出
12、响应。若表示该选项为有效,可以对用户事件做出响应。若设置该选项为设置该选项为FalseFalse,则相应的菜单项不响应用户,则相应的菜单项不响应用户事件。事件。 (9 9)可见:)可见:该复选框用于确定相应的菜单项是该复选框用于确定相应的菜单项是否可见(即否可见(即VisibleVisible属性)。若菜单项是可以执行属性)。若菜单项是可以执行的,则其可见属性为的,则其可见属性为TrueTrue,否则相应的菜单项不能,否则相应的菜单项不能执行,即其可见属性为执行,即其可见属性为FalseFalse。此时可以把它的。此时可以把它的“可见可见”属性设置为属性设置为TrueTrue,那么该菜单项将重
13、新出,那么该菜单项将重新出现在菜单中。现在菜单中。 (1010)显示窗口列表:)显示窗口列表:该复选框被选中(即框该复选框被选中(即框内为内为)时,将显示当前打开的一系列子窗口。该)时,将显示当前打开的一系列子窗口。该选项用于多文档应用程序。选项用于多文档应用程序。2编辑区编辑区 编辑区有编辑区有7 7个按钮,用于对输入的菜单项进行简单个按钮,用于对输入的菜单项进行简单编辑。菜单在数据区输入,在菜单项显示区显示。编辑。菜单在数据区输入,在菜单项显示区显示。这这7 7个按钮的作用如下个按钮的作用如下: : (1 1)左、右箭头:)左、右箭头:用来产生和取消内缩符号。用来产生和取消内缩符号。单击一
14、次右箭头可以产生一个内缩符号(单击一次右箭头可以产生一个内缩符号(4 4个点个点“.”),其作用是使当前菜单项的层次下降一),其作用是使当前菜单项的层次下降一层;单击一次左箭头,可以删除一个内缩符号,层;单击一次左箭头,可以删除一个内缩符号,其作用是使当前菜单项的层次上升一层。其作用是使当前菜单项的层次上升一层。 (2 2)上、下箭头:)上、下箭头:用来在菜单项显示区内移用来在菜单项显示区内移动菜单项的位置。把条形光标移动到某个菜单项动菜单项的位置。把条形光标移动到某个菜单项上,单击上箭头将使该菜单项上移,单击下箭头上,单击上箭头将使该菜单项上移,单击下箭头将使该菜单项下移。将使该菜单项下移。
15、 (3 3)下一个:)下一个:新建一个菜单项(与按新建一个菜单项(与按【EnterEnter】键作用相同)。键作用相同)。 (4 4)插入:)插入:在当前菜单项之前插入一个新的菜在当前菜单项之前插入一个新的菜单项。单项。 (5 5)删除:)删除:删除当前菜单项。删除当前菜单项。3菜单项显示区菜单项显示区 菜单项显示区在菜单设计窗口的下面,输入的菜单项显示区在菜单设计窗口的下面,输入的菜单项在此区域显示,不同菜单项的层次通过内菜单项在此区域显示,不同菜单项的层次通过内缩符号来表示。条形光标所在的菜单项为缩符号来表示。条形光标所在的菜单项为“当前当前菜单项菜单项”。 9.1.3 任务三任务三 创建
16、菜单的步骤创建菜单的步骤【例例9-1】设计一个具有输入、输出和显示功能的设计一个具有输入、输出和显示功能的菜单,该菜单可以把输入的一串字符显示出来。菜单,该菜单可以把输入的一串字符显示出来。分析:分析:根据题意,可以分为两个主菜单项,分别根据题意,可以分为两个主菜单项,分别为为“输入信息输入信息”和和“显示信息显示信息”,它们各包括两,它们各包括两个子菜单项。个子菜单项。 l l “输入信息输入信息”包括包括“输入输入”和和“退出退出”。 l l “显示信息显示信息”包括包括“显示显示”和和“清除清除”。 建立菜单的具体操作步骤如下:建立菜单的具体操作步骤如下: (1 1)建立控件)建立控件
17、本例中需要输入和输出数据,因此需要建立本例中需要输入和输出数据,因此需要建立一个文本框用以输入数据,建立一个标签用以一个文本框用以输入数据,建立一个标签用以输出数据,另外建立两个标签作为提示,各控输出数据,另外建立两个标签作为提示,各控件的属性设置如表件的属性设置如表9-1所示,窗体界面如图所示,窗体界面如图9-3所所示。此外,还要设置标签示。此外,还要设置标签outputoutput的背景色及的背景色及Label1Label1和和Label2Label2的显示方式,如图的显示方式,如图9-49-4所示。所示。 图图9-3 菜单控件设计菜单控件设计 图图9-4 菜单项设计菜单项设计 (2 2)
18、设计菜单)设计菜单 下面利用菜单编辑器来设计各个菜单项,在下面利用菜单编辑器来设计各个菜单项,在设计菜单控件时应提供设计菜单控件时应提供3种属性:标题、名称和种属性:标题、名称和内缩符号,一个内缩符号表示一层子菜单,没内缩符号,一个内缩符号表示一层子菜单,没有内缩符号表示主菜单项。本例中有两个主菜有内缩符号表示主菜单项。本例中有两个主菜单项,每个主菜单项有两个子菜单。其属性设单项,每个主菜单项有两个子菜单。其属性设置如表置如表9-2所示。具体操作步骤如下:所示。具体操作步骤如下: 选择选择“工具工具”“菜单编辑器菜单编辑器”命令,命令,弹出弹出“菜单编辑器菜单编辑器”对话框。对话框。 在在“标
19、题标题”文本框中输入文本框中输入“输入信息输入信息”(主菜单(主菜单1 1),在菜单项显示区中出现同样的),在菜单项显示区中出现同样的标题名称。标题名称。 按按【TabTab】键(或用鼠标)把输入光标移到键(或用鼠标)把输入光标移到“名称名称”文本框。文本框。 在在“名称名称”文本框中输入文本框中输入“InputInput”,此时菜,此时菜单项显示区中没有变化。单项显示区中没有变化。 将此菜单项的将此菜单项的EnableEnable(有效)和(有效)和VisibleVisible(可(可见)属性都设置为见)属性都设置为TrueTrue(本例中所有菜单项的此二(本例中所有菜单项的此二属性皆如此)
20、。属性皆如此)。 单击编辑区中的单击编辑区中的“下一个下一个”按钮,菜单项显示按钮,菜单项显示区中的条形光标下移,同时数据区的区中的条形光标下移,同时数据区的“标题标题”文本文本框和框和“名称名称”文本框被清空,光标回到文本框被清空,光标回到“标题标题”文文本框。本框。 在在“标题标题”文本框中输入文本框中输入“输入输入”,该信息同,该信息同时在菜单项显示区中显示出来。时在菜单项显示区中显示出来。 单击编辑区的右箭头,菜单显示区中的单击编辑区的右箭头,菜单显示区中的“输入输入”右移,同时其左侧出现一个内缩符号(右移,同时其左侧出现一个内缩符号(. .),表明),表明“输入输入”是是“输入信息输
21、入信息”的下一级菜单。的下一级菜单。 单击单击“快捷键快捷键”下拉列表框右端的下拉按钮,下拉列表框右端的下拉按钮,选择选择【Ctrl+ICtrl+I】作为作为“输入输入”菜单项的快捷键,此时,菜单项的快捷键,此时,在该菜单项右侧出现在该菜单项右侧出现Ctrl+ICtrl+I。 单击编辑区中的单击编辑区中的“下一个下一个”按钮,菜单项显示区按钮,菜单项显示区的条形光标下移,左端自动出现内缩符号的条形光标下移,左端自动出现内缩符号“. .”。 在在“标题标题”文本框内输入文本框内输入“退出退出”,然后在,然后在“名称名称”文本框内输入文本框内输入“QuitQuit”作为菜单项的名称。作为菜单项的名
22、称。 单击单击“快捷键快捷键”下拉列表框右端的下拉按钮,从中下拉列表框右端的下拉按钮,从中选出选出【Ctrl+Q】组合键作为组合键作为“退出退出”菜单项的快捷键。菜单项的快捷键。 建立主菜单项建立主菜单项“显示信息显示信息”及其两个子菜单及其两个子菜单项的操作与上面所述的各步骤类似,不再重复。项的操作与上面所述的各步骤类似,不再重复。设计完成后的窗口如图设计完成后的窗口如图9-49-4所示。此时,单击右上所示。此时,单击右上角的角的“确定确定”按钮,菜单的建立工作全部结束。按钮,菜单的建立工作全部结束。 设计完成后,窗体的顶行显示主菜单项,单设计完成后,窗体的顶行显示主菜单项,单击某个主菜单项
23、,即可显示下拉菜单,如图击某个主菜单项,即可显示下拉菜单,如图9-5所所示。示。 (3 3)为事件过程编写代码)为事件过程编写代码 如前所述,每个菜单项(包括主菜单项和子如前所述,每个菜单项(包括主菜单项和子菜单项)都可以接收菜单项)都可以接收Click事件。每个子菜单项事件。每个子菜单项都对应一个都对应一个Click事件过程。即程序运行后,只事件过程。即程序运行后,只要单击某个子菜单项,就可以执行事件过程所要单击某个子菜单项,就可以执行事件过程所定义的操作。定义的操作。 每个菜单项对应一个控件。菜单设计完成每个菜单项对应一个控件。菜单设计完成后,窗体上显示出如图后,窗体上显示出如图9-5所示
24、的菜单项,此所示的菜单项,此时只要单击某个子菜单项,即可编写该菜单时只要单击某个子菜单项,即可编写该菜单项的过程。例如,完成菜单设计后,单击项的过程。例如,完成菜单设计后,单击“输入信息输入信息”菜单项,显示菜单项,显示“输入输入”和和“退退出出”子菜单项,如果单击子菜单项,如果单击“输入输入”子菜单项,子菜单项,则进入程序代码窗口,并显示:则进入程序代码窗口,并显示: Private Sub Iput_Click() 输入菜单代码输入菜单代码 Text1.Text=End SubPrivate Sub disp_Click() 显示菜单代码显示菜单代码 output.Caption=Text
25、1.TextEnd SubPrivate Sub clear_Click() 清除菜单代码清除菜单代码 Text1.Text= output.Caption=End Sub9.1.4 任务四任务四 菜单控件数组菜单控件数组 在在Visual Basic中,菜单也是图形对象,即中,菜单也是图形对象,即控件,所以可以运用数组的概念。菜单控件数控件,所以可以运用数组的概念。菜单控件数组的作用主要有以下两方面:组的作用主要有以下两方面: (1)用于动态地增加和删除菜单项;)用于动态地增加和删除菜单项; (2)简化了编程过程,用一段代码处理多)简化了编程过程,用一段代码处理多个菜单项。个菜单项。【例例9
26、-2】设计一个简易的文本编辑器,具有新设计一个简易的文本编辑器,具有新建、编辑和保存一般文本文件的功能,如图建、编辑和保存一般文本文件的功能,如图9-7所示。所示。图图9-7 简易文本编辑器简易文本编辑器 建立此菜单的具体操作步骤如下:建立此菜单的具体操作步骤如下: (1)建立菜单控件)建立菜单控件 由于本菜单中有文本的输入和显示操作、文件由于本菜单中有文本的输入和显示操作、文件的操作(如的操作(如“打开打开”、“保存保存”等),因此需要有等),因此需要有文本框和对话框,还应设置文本的多行属性和滚动文本框和对话框,还应设置文本的多行属性和滚动条,如图条,如图9-8所示。所示。 (2)设计菜单)
27、设计菜单 此文本编辑器的每一菜单的下拉菜单中的菜单此文本编辑器的每一菜单的下拉菜单中的菜单项是通过菜单控件数组完成的,只需指定其项是通过菜单控件数组完成的,只需指定其Index属属性值即可。打开菜单编辑器,按表性值即可。打开菜单编辑器,按表9-3所示输入每一所示输入每一个菜单项的各个属性。所建立的菜单如图个菜单项的各个属性。所建立的菜单如图9-9所示。所示。图图9-8 建立菜单控件建立菜单控件 图图9-9 用菜单控件数组建立菜单用菜单控件数组建立菜单 (3)编写事件过程代码)编写事件过程代码 菜单建立好以后,还需要为每一个事件过程编菜单建立好以后,还需要为每一个事件过程编写相应的代码。下面是每
28、一个菜单项的代码。写相应的代码。下面是每一个菜单项的代码。“文件文件”菜单的各个菜单项对应的事件代码如下:菜单的各个菜单项对应的事件代码如下:Private Sub File_Click(Index As Integer) n=Index Select Case n Case 0 新建新建 Text1.Text= Form1.Caption=未命名未命名 Case 1 打开子菜单打开子菜单 CommonDialog1.ShowOpen 显示显示“打开打开”对话对话框框 fname=CommonDialog1.FileName If fname Then Text1.Text= Open fna
29、me For Input As #1 b= Do Until EOF(1) Line Input #1,nextline b=b & nextline & Chr(13) & Chr(10) Loop Close #1 Text1.Text=b End If Form1.Caption=fname Case 2 保存子菜单保存子菜单 If Form1.Caption=未命名未命名 Or Form1.Caption= Then CommonDialog1.ShowSave 显示显示“另存为另存为”对话对话框框 fname=CommonDialog1.FileName El
30、se fname=Form1.Caption End If If fname Then Open fname For Output As #1 Print #1,Text1.Text Close #1 End If Case 3 另存为子菜单另存为子菜单 CommonDialog1.ShowSave显示显示“另存为另存为”对话对话框框 fname=CommonDialog1.FileName If fname Then Open fname For Output As #1 Print #1,Text1.Text Close #1 End If Case 4 关闭子菜单关闭子菜单 Text1.
31、Text= End End Select Text1.SetFocusEnd Sub“编辑编辑”菜单的各个菜单项对应的事件代码如下:菜单的各个菜单项对应的事件代码如下:Private Sub Edi_Click(Index As Integer) i=Index Select Case i Case 0 剪切剪切 Clipboard.SetText Text1.SelText Text1.SelText= Case 1 复制复制 Clipboard.SetText Text1.SelText Case 2 粘贴粘贴 Text1.SelText=Clipboard.GetText() Case
32、3 清除清除 Text1.SelText= End SelectEnd Sub9.1.5 任务五任务五 弹出式菜单弹出式菜单 虽然下拉式菜单能够根据程序的运行情况虽然下拉式菜单能够根据程序的运行情况动态地调整其可见性、有效性,也可以动态地动态地调整其可见性、有效性,也可以动态地增减菜单项,但其对用户的当前操作跟踪不够。增减菜单项,但其对用户的当前操作跟踪不够。而弹出式菜单能以灵活的方式为用户提供更方而弹出式菜单能以灵活的方式为用户提供更方便的操作。便的操作。 弹出式菜单是独立于窗体菜单栏而显示在弹出式菜单是独立于窗体菜单栏而显示在窗体内的浮动菜单。弹出式菜单在窗体内的位窗体内的浮动菜单。弹出式
33、菜单在窗体内的位置取决于单击鼠标键(通常单击右键)时指针置取决于单击鼠标键(通常单击右键)时指针的位置,弹出式菜单也称为的位置,弹出式菜单也称为“上下文菜单上下文菜单”或或“快捷菜单快捷菜单”。建立弹出式菜单的具体操作步骤如下:建立弹出式菜单的具体操作步骤如下: (1)先用菜单编辑器建立菜单。)先用菜单编辑器建立菜单。此步骤与下拉式菜单建立方法相同,区别在于必须把此步骤与下拉式菜单建立方法相同,区别在于必须把主菜单项的主菜单项的“可见(可见(Visible)”属性设置为属性设置为False。 (2)用)用PopupMenu方法弹出显示。方法弹出显示。PopupMenu方法用来显示弹出式菜单,其
34、格式如下:方法用来显示弹出式菜单,其格式如下:.PopupMenu ,Flags,X,Y,BoldCommand说明:说明: PopupMenu方法有方法有6个参数,只有个参数,只有是必是必选的,其余都是可选的。省略选的,其余都是可选的。省略时,在当前窗体时,在当前窗体内打开弹出式菜单,如果需要在非当前窗体中打开弹出内打开弹出式菜单,如果需要在非当前窗体中打开弹出式菜单时,必须指定窗体名。式菜单时,必须指定窗体名。 是在菜单编辑器中定义的主菜单项名。是在菜单编辑器中定义的主菜单项名。 Flags参数是一个数值或符号常量,用来指定弹出参数是一个数值或符号常量,用来指定弹出式菜单的位置及行为,其取
35、值分为两组,如表式菜单的位置及行为,其取值分为两组,如表9-4和表和表9-5所示,一组用于指定菜单位置,另一组用于定义特殊的所示,一组用于指定菜单位置,另一组用于定义特殊的菜单行为。这两组参数可以单独使用,也可以联合使用。菜单行为。这两组参数可以单独使用,也可以联合使用。当联合使用时,每组中取一个常数,两个常数相加;若当联合使用时,每组中取一个常数,两个常数相加;若每组中取一个符号常量,则此两个常量用每组中取一个符号常量,则此两个常量用or相连。相连。 X、Y分别用来指定弹出式菜单在窗体上的显分别用来指定弹出式菜单在窗体上的显示位置,示位置,X为横坐标,为横坐标,Y为纵坐标,一般与为纵坐标,一
36、般与Flags参数参数配合使用。二者省略时,弹出式菜单在鼠标光标的当配合使用。二者省略时,弹出式菜单在鼠标光标的当前位置显示。如果这几个参数都省略,则当右击弹出前位置显示。如果这几个参数都省略,则当右击弹出菜单时,鼠标光标所在位置为弹出式菜单左上角的坐菜单时,鼠标光标所在位置为弹出式菜单左上角的坐标。系统默认窗体左上角为坐标原点;如果省略标。系统默认窗体左上角为坐标原点;如果省略Flags参数,不省略参数,不省略X、Y参数,则参数,则X、Y为弹出式菜单为弹出式菜单左上角的坐标;如果同时使用这几个参数,则弹出式左上角的坐标;如果同时使用这几个参数,则弹出式菜单的位置分为以下几种情况。菜单的位置分
37、为以下几种情况。Flags=0 X、Y为弹出式菜单左上角的坐标为弹出式菜单左上角的坐标Flags=4 X、Y为弹出式菜单顶边中间的坐标为弹出式菜单顶边中间的坐标Flags=8 X、Y为弹出式菜单右上角的坐标为弹出式菜单右上角的坐标 要弹出菜单,通常的做法是把要弹出菜单,通常的做法是把PopupMenu方方法放在法放在ouseDown事件中,该事件响应所有的鼠标事件中,该事件响应所有的鼠标单击操作。一般情况下右击显示弹出式菜单,这可单击操作。一般情况下右击显示弹出式菜单,这可以用以用Button参数来实现。对于两个键的鼠标来说,参数来实现。对于两个键的鼠标来说,左键的左键的Button参数值为参
38、数值为1,右键的,右键的Button参数值为参数值为2。所以可以用下面的语句实现在右击时响应所以可以用下面的语句实现在右击时响应MouseDown事件,显示弹出式菜单。事件,显示弹出式菜单。If Button=2 Then PopupMenu 菜单名菜单名【例例9-3】在例在例9-1中实现弹出式菜单,在文本显示区中实现弹出式菜单,在文本显示区域右击时可以设置字体格式。域右击时可以设置字体格式。其具体操作步骤如下:其具体操作步骤如下: (1)打开在例)打开在例9-1中建立的窗体,再打开菜单编中建立的窗体,再打开菜单编辑器,设置各个菜单项的属性,其属性如表辑器,设置各个菜单项的属性,其属性如表9-
39、6所所示,用菜单编辑器设计的结果如图示,用菜单编辑器设计的结果如图9-10所示。所示。图图9-10 建立弹出式菜单建立弹出式菜单 (2)编辑标签的)编辑标签的MouseDown事件过程。事件过程。Private Sub output_MouseDown(Button As Integer, Shift As Integer, X As Single, - Y As Single) If Button=2 Then PopupMenu popformat End IfEnd Sub 此过程中的条件语句用来判断所按下的是否是此过程中的条件语句用来判断所按下的是否是鼠标右键,如果是,则用鼠标右键,如
40、果是,则用PopupMenu方法弹出菜单。方法弹出菜单。运行程序,然后在标签运行程序,然后在标签output内右击,将弹出一个内右击,将弹出一个菜单,如图菜单,如图4-11所示。所示。图图9-11 显示弹出式菜单显示弹出式菜单 (3)为每个子菜单项编写事件过程代码。)为每个子菜单项编写事件过程代码。 在编写下拉式菜单过程代码时,通常是在窗体中在编写下拉式菜单过程代码时,通常是在窗体中单击主菜单项,显示子菜单,然后双击某个子菜单单击主菜单项,显示子菜单,然后双击某个子菜单项,进入代码窗口,即可编写该菜单项的事件过程项,进入代码窗口,即可编写该菜单项的事件过程代码。而弹出式菜单的主菜单项是不可见的
41、(其代码。而弹出式菜单的主菜单项是不可见的(其Visible属性为属性为False),不能在窗体顶部显示,所以),不能在窗体顶部显示,所以不能通过双击子菜单项的方式进入代码窗口,必须不能通过双击子菜单项的方式进入代码窗口,必须先进入代码窗口(选择先进入代码窗口(选择“视图视图”“代码代码”命令,命令,或按或按【F7】键,或双击窗体),然后单击键,或双击窗体),然后单击“对象对象”下拉列表框右端的下拉按钮,显示各个子菜单项,下拉列表框右端的下拉按钮,显示各个子菜单项,再单击某个子菜单项,将显示该子菜单项的事件过再单击某个子菜单项,将显示该子菜单项的事件过程代码框架,然后可在该框架内编写代码。程代
42、码框架,然后可在该框架内编写代码。各子菜单项的事件过程代码如下:各子菜单项的事件过程代码如下:Private Sub popBold_Click() 粗体菜单粗体菜单 output.FontBold=TrueEnd SubPrivate Sub popItalic_Click() 斜体菜单斜体菜单 output.FontItalic=TrueEnd SubPrivate Sub popUndrli_Click() 下划线菜单下划线菜单 output.FontUnderline=TrueEnd SubPrivate Sub font20pt_Click() output.FontSize=20E
43、nd SubPrivate Sub fontLs_Click() output.FontName=隶书隶书End SubPrivate Sub Qit_Click() EndEnd Sub 运行上面的程序后,用弹出式菜单设置标签内数运行上面的程序后,用弹出式菜单设置标签内数据的属性,如图据的属性,如图4-12所示。所示。图图9-12 弹出式菜单程序运行结果弹出式菜单程序运行结果 9.2 工具栏设计工具栏设计 工具栏(也称为发条或者控制栏)已经成为工具栏(也称为发条或者控制栏)已经成为许多基于许多基于 Windows 应用程序的标准功能。工具应用程序的标准功能。工具栏提供了对于应用程序中最常用的
44、菜单命令的快栏提供了对于应用程序中最常用的菜单命令的快速访问。制作工具栏有两种方法:一是手工制作,速访问。制作工具栏有两种方法:一是手工制作,即利用图形框和命令按钮,比较烦琐;另一种方即利用图形框和命令按钮,比较烦琐;另一种方法通过组合使用法通过组合使用ToolBar、ImageList控件,使得控件,使得工具栏制作与菜单制作一样简单易学。工具栏制作与菜单制作一样简单易学。 用手工方式制作工具栏的具体操作步骤如下:用手工方式制作工具栏的具体操作步骤如下: (1)在窗体中添加一个图片框(作为工具按钮)在窗体中添加一个图片框(作为工具按钮的容器),通过设置图片框的的容器),通过设置图片框的Alig
45、n属性来控制工属性来控制工具栏(图片框)在窗体中的位置。当改变窗体的大具栏(图片框)在窗体中的位置。当改变窗体的大小时,小时,Align属性值非属性值非0的图片框会自动改变大小以的图片框会自动改变大小以适应窗体的宽度或高度。适应窗体的宽度或高度。 (2)选定图片框,在图片框中添加任何想在工)选定图片框,在图片框中添加任何想在工具栏中显示的控件,通常使用的控件有命令按钮、具栏中显示的控件,通常使用的控件有命令按钮、图形方式的选项按钮、复选框按钮和下拉列表框等。图形方式的选项按钮、复选框按钮和下拉列表框等。 (3)设置控件的属性。通常在工具按钮上通过)设置控件的属性。通常在工具按钮上通过不同的图像
46、来表示对应的功能,还可以设置按钮的不同的图像来表示对应的功能,还可以设置按钮的ToolTipText属性为工具按钮添加工具提示。属性为工具按钮添加工具提示。图图4-13 带工具栏的简易文本编辑器带工具栏的简易文本编辑器 (4)编写代码。)编写代码。 由于工具按钮通常用于提供对其他(菜单)命由于工具按钮通常用于提供对其他(菜单)命令迅速快捷地访问,所以一般都是在其令迅速快捷地访问,所以一般都是在其Click事件事件代码中调用对应的菜单命令。代码中调用对应的菜单命令。【例例9-4】为例为例9-2中的简易文本编辑器增加一个自中的简易文本编辑器增加一个自定义的工具栏,如图定义的工具栏,如图9-13所示
47、。所示。在例在例9-2的基础上作如下修改。的基础上作如下修改。 (1)修改应用程序用户界面。在窗体上增加)修改应用程序用户界面。在窗体上增加一个图片框一个图片框Picture1,然后在图片框中增加一个,然后在图片框中增加一个命令按钮数组命令按钮数组Command1(0)Command1(2)和复和复选框数组选框数组Check1(0)Check1(2)。 (2)设置新增对象属性,如表)设置新增对象属性,如表9-7所示。所示。(3)修改及编写程序代码。)修改及编写程序代码。修改窗体的事件代码如下:修改窗体的事件代码如下:Private Sub Form_Resize() With Text1 Le
48、ft=0 Top=Picture1.Height Height=Form1.ScaleHeight-Picture1.Height Width=Form1.ScaleWidth End WithEnd Sub编写命令按钮数组编写命令按钮数组Command1()的的Click事件代码如下:事件代码如下:Private Sub Command1_Click(index As Integer) File_Click (index)End Sub编写复选框数组编写复选框数组Check1()的事件代码如下:的事件代码如下:Private Sub Check1_Click(index As Integer
49、) Edi_Click (index)End Sub9.2.1 任务一任务一 使用使用ToolBar控件控件 使用使用ToolBar控件和控件和ImageList控件来创建工具控件来创建工具栏非常容易且很方便。在使用这些控件前必须打栏非常容易且很方便。在使用这些控件前必须打开开“部件部件”对话框,选择对话框,选择Microsoft Windows Common Controls 6.0选项,将控件添加到工具中,选项,将控件添加到工具中,如图如图9-14所示。所示。图图9-14 添加控件到工具箱添加控件到工具箱 1ToolBar控件控件 控件的插入:在工具箱中选择控件的插入:在工具箱中选择Too
50、lBar控件,然控件,然后在窗体中画出控件。后在窗体中画出控件。 控件属性的设置:控件属性的设置: (1)通过设置)通过设置ToolBar的的Align属性可以控制工具属性可以控制工具栏在窗体中的位置。当改变窗体的大小时,栏在窗体中的位置。当改变窗体的大小时,Align属属性值非性值非0的的ToolBar控件会自动地改变大小以适应窗控件会自动地改变大小以适应窗体的宽度或高度。体的宽度或高度。 (2)右击窗体上的)右击窗体上的ToolBar控件,在弹出的快捷控件,在弹出的快捷菜单中选择菜单中选择“属性(属性(Properties)”命令或者选中窗命令或者选中窗体上的体上的ToolBar控件后在属
51、性窗口单击控件后在属性窗口单击“自定义自定义(Custom)”下拉列表框右侧的下拉按钮,都可以下拉列表框右侧的下拉按钮,都可以打开打开ToolBar的的“属性属性”对话框,如图对话框,如图9-15所示。所示。图图9-15 “属性页属性页”对话框对话框 “通用通用”选项卡中的选项卡中的“图像列表图像列表”属性用来与属性用来与ImageList控件建立关联(见图控件建立关联(见图9-16),),“按钮按钮”选选项卡用来在项卡用来在ToolBar控件中添加按钮(见图控件中添加按钮(见图9-17)。)。图图9-16 与与ImageList控件建立关联控件建立关联 图图9-17 在在ToolBar中添加
52、按钮中添加按钮 “按钮按钮”选项卡的各项功能如下。选项卡的各项功能如下。 插入删除按钮:在按钮集合中添加或删除按钮元素插入删除按钮:在按钮集合中添加或删除按钮元素 索引和关键字:工具栏中的每个按钮都有唯一的标索引和关键字:工具栏中的每个按钮都有唯一的标识,即索引和关键字。索引是整型,关键字是字符串型,识,即索引和关键字。索引是整型,关键字是字符串型,访问按钮时可以引用二者之一。访问按钮时可以引用二者之一。 标题和描述:标题是显示在按钮上的文字,描述是标题和描述:标题是显示在按钮上的文字,描述是按钮的说明信息。按钮的说明信息。 值:决定按钮的状态,值:决定按钮的状态,0-tbrUnpressed
53、为弹起状态,为弹起状态,1-tbrPressed为按下状态。为按下状态。 样式:决定按钮的行为特点,并且将影响按钮的功能,样式:决定按钮的行为特点,并且将影响按钮的功能,如表如表9-8所示。所示。 宽度:当宽度:当Style属性值为属性值为4时,可设置按钮的宽度。时,可设置按钮的宽度。 图像:按钮上显示的图片在图像:按钮上显示的图片在ImageList控件中的编号控件中的编号工具提示文本:程序运行时,当鼠标指向按钮时显示的工具提示文本:程序运行时,当鼠标指向按钮时显示的说明性文字。说明性文字。2ImageList控件控件 工具栏(工具栏(ToolBar)本身没有)本身没有Picture属性,不
54、能属性,不能直接添加按钮上显示的图片。直接添加按钮上显示的图片。Visual Basic专门提供专门提供了图像列表控件了图像列表控件ImageList,此控件不单独使用,专,此控件不单独使用,专门为其他控件提供图像库,是一个图像容器控件。门为其他控件提供图像库,是一个图像容器控件。工具栏按钮的图像就是通过工具栏按钮的图像就是通过ToolBar控件从控件从ImageList的图像库中获得的。的图像库中获得的。控件的插入:控件的插入: 在在ToolBar控件所在的窗体中添加控件所在的窗体中添加ImageList控控件及其图片,然后建立件及其图片,然后建立ToolBar和和ImageList控件之间
55、控件之间的关联,最后从的关联,最后从ImageList控件的图片库中选择需要控件的图片库中选择需要的图像加载到工具栏按钮上。的图像加载到工具栏按钮上。 3创建工具栏的步骤创建工具栏的步骤 (1)有窗体中插入工具栏控件(如)有窗体中插入工具栏控件(如ToolBar1)和)和一个图像列表控件(如一个图像列表控件(如Imagelist1),并设置工具栏),并设置工具栏控件的控件的Align属性。属性。 (2)在)在Imagelist控件中添加所需的图像。控件中添加所需的图像。 (3)在)在ToolBar控件中创建按钮(控件中创建按钮(Button)对象。)对象。 (4)在工具栏(如)在工具栏(如To
56、olBar1)的)的ButtonClick事件事件中用中用Select Case语句对各按钮进行相应的编程。语句对各按钮进行相应的编程。【例例9-5】使用工具栏控件重新设计例使用工具栏控件重新设计例9-4中的简易中的简易文本编辑器,如图文本编辑器,如图9-18所示。所示。图图9-18 利用工具栏控件设计的带工具栏的简易文本编辑器利用工具栏控件设计的带工具栏的简易文本编辑器 在例在例4-2的基础上进行操作。的基础上进行操作。 (1)修改应用程序用户界面。将窗体上的图片框及其)修改应用程序用户界面。将窗体上的图片框及其中的命令按钮及复选框删除,再添加一个工具栏控件中的命令按钮及复选框删除,再添加一
57、个工具栏控件ToolBar1和一个图像列表控件和一个图像列表控件ImageList1。设置。设置ToolBar1的的Align属性为属性为1-cdlAligntop,如图,如图9-19所示。所示。 (2)通过)通过“属性属性”对话框设置工具栏控件与图像列表对话框设置工具栏控件与图像列表控件的属性。先选中图像列表控件控件的属性。先选中图像列表控件ImageList1并右击,在并右击,在弹出的快捷菜单中选择弹出的快捷菜单中选择“属性属性”命令即可打开命令即可打开“属性页属性页”对话框,切换到对话框,切换到“图像图像”选项卡,单击选项卡,单击“插入图片插入图片”按钮,按钮,并依次从并依次从commo
58、ngraphicbitmapstlbr_w95目录中选取图目录中选取图片文件片文件New.bmp、Open.bmp、Save.bmp、Cut.bmp、Copy.bmp、Paste.bmp,如图,如图9-20所示,单击所示,单击“确定确定”按按钮关闭钮关闭“属性页属性页”对话框。对话框。 图图9-19 添加工具栏控件添加工具栏控件 图图9-20 向图像列表控件向图像列表控件ImageList1中添加图像中添加图像 (3)选中工具栏控件)选中工具栏控件ToolBar1,打开,打开“属性页属性页”对话框。切换到对话框。切换到“通用通用”选项卡,将选项卡,将“图像列表图像列表”属性改为属性改为Imag
59、eList1,建立与图像列表框的关联。,建立与图像列表框的关联。切换到切换到“按钮按钮”选项卡,依次插入按钮,如表选项卡,依次插入按钮,如表9-9所示。单击所示。单击“确定确定”按钮,关闭按钮,关闭“属性页属性页”对话框。对话框。添加了工具栏的窗体如图添加了工具栏的窗体如图9-21所示。所示。图图9-21 向工具栏中添加按钮向工具栏中添加按钮 (4)修改及编写程序代码。)修改及编写程序代码。修改窗体的事件代码如下:修改窗体的事件代码如下:Private Sub Form_Resize() With Text1 Left=0 Top=Toolbar1.Height Height=Form1.Sc
60、aleHeight-Toolbar1.Height Width=Form1.ScaleWidth End WithEnd Sub编写工具栏按钮的事件代码如下:编写工具栏按钮的事件代码如下:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) n=Button.index Select Case n Case 2,3,4 File_Click(n-2) Case 6,7,8 Edi_Click(n-6) End SelectEnd Sub4.2.2 任务二任务二 使用使用CoolBar控件控件 Visual Basic 6.0提供了功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省周口市川汇区2024-2025学年八年级上学期期中质量监测语文试卷(无答案)
- 社经大势解密-揭示市场前景与决策因素
- 2014-2020年全球格拉辛纸行业市场深度调查与投资规划分析研究报告
- 2011-2016年PET注坯模具行业动态预测报告
- 2024至2030年中国变压器磁芯数据监测研究报告
- 2024至2030年中国仙人粮晶数据监测研究报告
- 2024年中国立轴圆台平面磨床市场调查研究报告
- 2024年中国电源保护分配器市场调查研究报告
- 2024年中国便携式示波器市场调查研究报告
- 2024年中国交接器市场调查研究报告
- 液压上料机械手设计设计说明书
- 中医内科学重点知识
- 唐山市2024-2025学年度高三年级摸底演练 语文试卷(含答案)
- 部编版四年级上册《第5单元 习作例文:我家的杏熟了 小木船》课件
- 2023年四川省绵阳市游仙区东辰国际学校小升初数学试卷
- 2024年天津中煤进出口限公司招聘电力及新能源专业人才(高频重点提升专题训练)共500题附带答案详解
- 教育教学管理能力答辩问题
- 2024年全国新能源汽车关键技术技能大赛考试题库500题
- 地理标志使用合同
- 2024-2030年中国呼叫中心行业现状规模及前景动态预测报告
- 2024年中国诚通控股集团限公司总部公开招聘(高频重点提升专题训练)共500题附带答案详解
评论
0/150
提交评论