下拉式菜单设计
1.下拉式菜单的组成(如图4.2所示)
(1)下拉式菜单由主菜单、主菜单项、子菜单等组成。
(2)子菜单可分为一级子菜单、二级子菜单直到五级子菜单。
(3)每级子菜单由菜单项、快捷键、分隔条、子菜单提示符等组成。
图4.2 下拉式菜单的组成
①菜单项:所有子菜单的基本元素就是菜单项,每个菜单项代表一条命令或子菜单标题。
②分隔条:分隔条为一条横线,用于在子菜单中区分不同功能的菜单项组,使菜单项功能一目了然,并且方便操作。
③快捷键:为每个最底层的菜单项设置快捷键后,可以在不用鼠标操作菜单项的情况下,通过快捷键直接执行相应的命令。
④热键:热键是在鼠标失效时,为用户操作菜单项提供的按键选择,使用热键时,须与<Alt>键同时使用。
⑤子菜单提示符:如果某个菜单项后有子菜单,则在此菜单项的右边出现一个向右指示的小三角子菜单提示符。
2.菜单编辑器的启动
执行菜单命令:工具| 菜单编辑器,即可打开菜单编辑器,如图4.3所示。
菜单编辑器分为上下两部分:上半部分用于设置菜单项的属性,下半部分用于显示用户设置的主菜单项与子菜单项内容。
图4.3 菜单编辑器
3.菜单编辑器的使用方法
(1)标题栏(Caption):输入菜单项的标题、设置热键与分隔条;
①标题:直接输入标题内容,如“文件”。
②热键:在菜单项中某个字母前输入“&”后该字母将成为热键,如在图4.3的文件主菜单项中输入“文件
(&F)”。
③分隔条:在标题框中键入一个连字符“-”即可。
(2)名称栏(Name):用于输入菜单项内部惟一标识符,如图4.3 “File”等,程序执行时不会显示名字栏内容。
注意:分隔符也要输入名称,且不能重复命名。
(3)快捷键下拉列表框(Shortcut Key):用于选择菜单项的快捷键,用鼠标单击列表框的下拉按钮,在列表框中可选择不同的快捷键。
(4)下一个按钮(Next):当用户将一个菜单项的各属性设置完后,单击“下一个”按键可新建一个菜单项或进入下一个菜单项。
(5)“←”与“→”按钮:用于选择菜单项在菜单中的层次位置。
单击“→”按钮将菜单项向右移编入下一级子菜单。
单击“←”按钮将菜单项向左移编入上一级子菜单。
(6)插入按钮(Insert):用于在选定菜单项前插入一个新的菜单项。使用时应先在图  4.3所示菜单编辑器的下半部分选定菜单项,然后按“插入”按钮,并输入新菜单项的标题、名称等内容。
(7)删除按钮(Delete):用于删除指定菜单项。先在菜单编辑器的下半部分选择要删除的菜单项,然后按“删除”按钮。
(8)“↑”和“↓”按钮:用于改变菜单项在主菜单与子菜单中的顺序位置。
(9)复选框(Checked):若某菜单项的复选框被选中,则该菜单项左边加上检查标记“√”,表示该菜单项是一个被选项。
(10)有效框(Enabled):当菜单项的有效框被选中时,程序执行时,该菜单项高亮度显示,表示用户可以选择该菜单项。当菜单项的有效框未被选中时,程序执行后,该菜单项灰显示,表示用户不能选择该菜单项。
(11)可见框(Visible):菜单项的可见框被选中,则该菜单项可见,否则不可见。(12)显示窗口列表复选框:若某菜单项的“显示窗口列表”复选框有效,则该菜单项成为多文档窗体的“窗口”,在该“窗口”中将列出所有已打开子窗体的标题名称。
【例4.1】设计一个简易文本编辑器的下拉式菜单,如图4.2所示,设计要求如表4.1。
表4.1 简易文本编辑器的下拉式菜单结构
设计步骤如下:
(1)在e:盘新建目录e:\vb\program\exemple4_1,用于保存工程文件与窗体文件等内容。(2)在VB中新建一个工程与一个窗体。将窗体的Caption属性改为“下拉式菜单设计示例”,Name属性改为Form_ex41。
(3)启动菜单编辑器
在VB中执行菜单命令:工具|菜单编辑器,进入图4.2所示菜单编辑器对话框界面。(4)使用菜单编辑器建立菜单
①创建主菜单项
标题栏中输入“文件(&F)”(F键成为热键),名称栏中输入“File”。按“下一个”按钮将产生新的菜单项。
tool工具箱说明:若不需给“文件”主菜单项设置热键,只要取消标题栏中的“(&F)”即可。
②创建子菜单项
标题栏中输入“新建”,名称栏中输入“New”,在快捷键栏中选择Ctrl+N,Ctrl+N成为“新建”菜单项的快捷键。单击“→”按钮,使“新建”菜单项向右缩进4个点。单击“下一个”按钮产生新的菜单项。继续创建“打开”、“保存”等子菜单项。
说明:若再单击“→”按钮,使菜单项向右再缩进4个点(共8个点),表示该菜单项为二级子菜单项。单击n次“→”单击,使菜单项向右再缩进4*n个点,该菜单项成为n级子菜单项。若要使n级子菜单项升级为n-1级子菜单项,只需单击“←”按钮即可。当菜单项向左移动到左边框线时便成为主菜单项。
若不想给“新建”菜单项设置快捷键Ctrl+N,只需在快捷键栏中选择(None)即可。
③创建分隔条
要使菜单项成为分隔条,只需在标题栏中输入“-”即可,但名称栏必须输入内容,如Separator1等。
(5)建立菜单项事件过程
对“新建”、“打开”、“保存”与“退出”4个菜单项编写事件过程。
在窗体设计器中,选择并单击“新建”菜单项,进入代码编辑器,输入如下代码:Private Sub New_Click()
Print "新建文件"
End Sub
选择并单击“打开”菜单,进入代码编辑器,输入如下代码:
Private Sub Open_Click()
Print "打开文件"
End Sub
选择并单击“保存”菜单,进入代码编辑器,输入如下代码:
Private Sub Save_Click()
Print "保存文件"
End Sub
选择并单击“退出”菜单,进入代码编辑器,输入如下代码:
Private Sub Exit_Click()
End
End Sub
(6)保存工程与窗体文件
执行菜单命令:文件| 保存工程,将工程文件保存在目录e:\vb\program\example4_1中。工程文件名称为ex4_1.vbp。窗体文件名称为Form_ex41.frm。
(7)编译和运行程序
弹出式菜单设计
1.PopupMenu方法的调用格式
[窗体名.] PopupMenu <;菜单名> [,flags][,x][,y][,boldcommand]
说明:
(1)窗体名表示要弹出菜单的窗体名称,默认为当前窗体。
(2)菜单名是要弹出的菜单名称,一般至少包含一个子菜单项的主菜单项名称。
(3)flags为可选参数,用于设定菜单弹出的位置和行为,位置常数和行为常数分别如表4.2和表4.3所示。若同时指定这两个常数,可用“逻辑或”运算符(Or)将二者结合起来,例如:4 or 2。
表4.2 Flags参数中的位置常数
表4.3 Flags参数中的行为常数
(4)x和y两个可选参数用于指定显示弹出式菜单的位置。如果该参数省略,则使用鼠标的坐标。
(5)boldname参数指定弹出式菜单中的菜单控件的名字,用以显示其黑体正文标题。如果该参数省略,则弹出式菜单中没有以黑体字出现的控件。
PopupMenu方法常在控件对象的鼠标按下事件过程MouseDown()中调用,下面举例说明。
2. 弹出式菜单应用举例
【例4.2】设计一个带有下拉式菜单、弹出式菜单的文本编辑器,其工作界面如图4.4所示。设计要求如下。
在例4.1的窗体中添加一个RichTextBox控件作为图文编辑器,用弹出式菜单实现文本编辑器的“复制、剪切、粘贴”功能,程序设计过程如下。
图4.4弹出式菜单示例
(1)打开例4.1所建的工程,另存到e:\vb\program\exemple4_2,工程文件名称为ex4_2.vbp,窗体文件名称为Form_ex42.frm。具体操作过程如下。
①新建文件目录e:\vb\program\exemple4_2 。
②将工程ex4_1.vbp另存为ex4_2.vbp
执行菜单命令:文件| 工程另存为,选择e:\vb\program\exemple4_2 目录,输入工程名为ex4_2.vbp。
③将窗体Form_41.frm 另存为Form_ex42.frm
执行菜单命令:文件| Form_41.frm 另存为,选择e:\vb\program\exemple4_2目录,输入窗体名为Form_ex42.frm | 保存;将窗体的Name属性改为Form_ex42,Caption属性改为“下拉式菜单与弹出式菜单设计示例”。
(2)在工具箱中添加图文编辑器RichTextBox
执行菜单命令:工程| 部件| 使Microsort Rich TextBox Control 6.0(SP6) 复选框有效;将RichTextBox控件添加到工具箱中。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。