弹出式菜单的实现
VB中在菜单设计窗口中设计的菜单是下拉式菜单。下拉式菜单是用户在任何时候都可以在顶端菜单条上选择后拉出的菜单,而弹出式菜单则是在程序界面的一定区域内点按鼠标键后出现的菜单。在某些情况下,弹出式菜单会使系统功能的实现更加简洁和高效,使用起来更加得心应手。
Windows程序的弹出式菜单一般是当用户在程序的桌面上点按鼠标键时出现的。弹出式菜单多用于实现系统的附加或增强功能。弹出式菜单的内容,可以随点按鼠标键的位置不同而变化。由于弹出的菜单要覆盖屏幕的一部分,所以应尽量缩短菜单里的文字。
在VB中,弹出式菜单的实现要用到下拉式菜单设计的技术和PopupMenu方法。具体的做法是:
在菜单设计窗口里设计好相应窗体的弹出式菜单。要注意的是,要弹出的菜单必须至少有一个子菜单;因而这个菜单不能有快捷键,并且Checked属性必须是False。再把弹出式菜单的Visible属性改为False。
在具有设计好的弹出式菜单的窗体的Form_Click中加入以下代码(假设弹出式菜单的 Name属性是mnuExam-ple):
Sub Form_Click()
PopupMenu mnuExample
End Sub
如果要求只有按下鼠标左键或者右键才能激活菜单,就必须在Form_MouseDown里加入如下代码:
Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Sin-gle,y As Sin gle)
If Button=2 then Button=2 表示鼠标右键
PopupMenu mnuExample
End If
PopupMenu的完整句法是:
[Form.]PopupMenu menuname[flags[,x[,y]]]
改变flags的值可以控制弹出式菜单的表现形式。flags有两组值:第一组值用来控制菜单的显示方式,包括POPUP-MENU_LEFTALIGN,POPUPMENU_CENTERALIGN,POPUPMENU_RI-GHTALI GN,分别表示以x为左边界、以x为中心和以x为右边界的显示方式,并且以x为左边界是缺省的方式;另外一组值用来控制菜单项的选中方式,包括POPUP-MENU_LEFTBUTTON和POPUP-MENU_R IGHTBUTTON,分别表示左键选中和左/右键选中均可,并且左键选中是缺省的方式。flags的值由上面的两组值经过OR运算得出。例如,要求左对齐显示并且左键选中为准,则应有:
flags=POPUPMENU_LEFTALIGN OR POPUPMENU_LEFTBUTTON
x和y用来定义菜单弹出的位置,缺省是鼠标点中的位置。
菜单项的其他属性
用ALT+字母键激活顶层菜单,或者在菜单激活后用字母键激活一个菜单项,必须学会使用 &。&用在菜单项的标题属性(Caption)里。它的用法和作用与在用C语言编制的Windows程序中的用法和作用相同。
有时希望顶层菜单之间的间隔大一些,或者某个顶层菜单出现在菜单条的最右端,这时就要用到标题属性是空格的菜单。如果一个菜单的标题是由多个空格组成的,那么这个菜单在菜单条上就占用跟空格的个数相应的空间,并且它后面的菜单也顺序地后移;如果这个菜单的 Visible属性是False,那么它就跟不存在一样。
VB中在菜单设计窗口中设计的菜单是下拉式菜单。下拉式菜单是用户在任何时候都可以在顶端菜单条上选择后拉出的菜单,而弹出式菜单则是在程序界面的一定区域内点按鼠标键后出现的菜单。在某些情况下,弹出式菜单会使系统功能的实现更加简洁和高效,使用起来更加得心应手。
Windows程序的弹出式菜单一般是当用户在程序的桌面上点按鼠标键时出现的。弹出式菜单多用于实现系统的附加或增强功能。弹出式菜单的内容,可以随点按鼠标键的位置不同而变化。由于弹出的菜单要覆盖屏幕的一部分,所以应尽量缩短菜单里的文字。
在VB中,弹出式菜单的实现要用到下拉式菜单设计的技术和PopupMenu方法。具体的做法是:
在菜单设计窗口里设计好相应窗体的弹出式菜单。要注意的是,要弹出的菜单必须至少有一个子菜单;因而这个菜单不能有快捷键,并且Checked属性必须是False。再把弹出式菜单的Visible属性改为False。
在具有设计好的弹出式菜单的窗体的Form_Click中加入以下代码(假设弹出式菜单的 Name属性是mnuExam-ple):
Sub Form_Click()
PopupMenu mnuExample
End Sub
如果要求只有按下鼠标左键或者右键才能激活菜单,就必须在Form_MouseDown里加入如下代码:
Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Sin-gle,y As Sin gle)
If Button=2 then Button=2 表示鼠标右键
PopupMenu mnuExample
End If
PopupMenu的完整句法是:
[Form.]PopupMenu menuname[flags[,x[,y]]]
改变flags的值可以控制弹出式菜单的表现形式。flags有两组值:第一组值用来控制菜单的显示方式,包括POPUP-MENU_LEFTALIGN,POPUPMENU_CENTERALIGN,POPUPMENU_RI-GHTALI GN,分别表示以x为左边界、以x为中心和以x为右边界的显示方式,并且以x为左边界是缺省的方式;另外一组值用来控制菜单项的选中方式,包括POPUP-MENU_LEFTBUTTON和POPUP-MENU_R IGHTBUTTON,分别表示左键选中和左/右键选中均可,并且左键选中是缺省的方式。flags的值由上面的两组值经过OR运算得出。例如,要求左对齐显示并且左键选中为准,则应有:
flags=POPUPMENU_LEFTALIGN OR POPUPMENU_LEFTBUTTON
x和y用来定义菜单弹出的位置,缺省是鼠标点中的位置。
菜单项的其他属性
用ALT+字母键激活顶层菜单,或者在菜单激活后用字母键激活一个菜单项,必须学会使用 &。&用在菜单项的标题属性(Caption)里。它的用法和作用与在用C语言编制的Windows程序中的用法和作用相同。
有时希望顶层菜单之间的间隔大一些,或者某个顶层菜单出现在菜单条的最右端,这时就要用到标题属性是空格的菜单。如果一个菜单的标题是由多个空格组成的,那么这个菜单在菜单条上就占用跟空格的个数相应的空间,并且它后面的菜单也顺序地后移;如果这个菜单的 Visible属性是False,那么它就跟不存在一样。