VB6.0实例学习--使用右键菜单的例子
右键菜单能让软件的使用者快捷的完成操作,那么如何把右键菜单用在自己写的程序中呢?在这个小程序中我们能看到编辑并使用右键菜单的方法。为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:
'--------------------------------------
' 弹出鼠标右键菜单
'--------------------------------------
' 洪恩在线 求知无限
'--------------------------------------
'------名称-------------作用------------
' CmdCancel 退出按钮
' mnublue “兰色”菜单项
' mnured “红色”菜单项
' RichTextBox1 文本框
' PopupFrm 主窗体
' mnufile 右键菜单的名字
'--------------------------------------Private Sub CmdCancel_Click()
Unload Me
End Sub
'当弹出式菜单的“红色”项被点击时
Private Sub mnured_Click()
'把RichTextBox框中的背景色设置为红色
RichTextBox1.BackColor = vbRedEnd Sub
'当弹出式菜单的“兰色”项被点击时
Private Sub mnublue_Click()
'把RichTextBox框中的背景色设置为兰色
RichTextBox1.BackColor = vbBlueEnd Sub
'当文本框上出现鼠标按下的事件时
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'MouseDown事件各种语法包含下列部分:
'button 返回一个整数,用来标识该事件的产生是按下哪个按钮
'其中 左按钮(位 0),右按钮(位 2),以及中间按钮(位 4)
'shift 返回一个整数,标示是否同时有Shift,Ctrl,Alt键按下
'x, y 返回一个指定鼠标指针当前位置的数
'Button = 2 表示右键按下
If Button = 2 Then
'PopupMenu方法用来弹出一个菜单
'语法是 object.PopupMenu menuname, flags, X, Y
'mnufile是我们在菜单编辑器中设计好的菜单
'X,Y是弹出菜单的位置,可以为数字,如果直接写为X,Y则是在当前鼠标位置弹出菜单
PopupFrm.PopupMenu mnufile, 0, X, Y
End IfEnd Sub
我们先打开菜单编辑器(在工具菜单中),然后添加一个一级菜单Popmenu,将它的Visible属性设为“False”,这代表菜单在程序运行时是看不到的,由于一级菜单是二级菜单的上级菜单,所以二级菜单也是看不到的。然后我们来添加几个二级菜单,注意每个菜单都有Caption属性和Name属性,这两个属性是必须写的,Caption属性是显示在菜单项上的内容,而Name属性则是我们要在程序中引用菜单项的代号,类似与其它控件的Name属性。而菜单中分隔线是通过把Caption属性设为“-”来实现的。菜单编辑好后,就能在程序中引用并控制它,在本例中我们希望在文本框上点击鼠标右键时弹出这个右键菜单,则需要在文本框的MouseDown事件中加入控制语句:Private Sub RichTextBox1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
If Button = 2 Then '如果是鼠标右键按下时
Form1.PopupMenu mnufile, 0, X, Y '弹出右键菜单
End If
End Sub其中MouseDown事件各个参数意义如下:button返回一个整数,用来标识该事件的产生是按下哪个按键,其中左键为0,右键为2,中间键为4
shift 返回一个整数,标示是否同时有Shift,Ctrl,Alt键按下
x, y 返回一个指定鼠标指针当前位置的数Popupmenu是一个方法:PopupMenu方法用来弹出一个菜单,语法是:object.PopupMenu menuname, flags, X, Y
mnufile是我们在菜单编辑器中设计好的菜单的名称
X,Y是弹出菜单的位置,可以为数字,如果直接写为X,Y则是在当前鼠标位置弹出菜单这样就能调出右键菜单,然后我们根据自己的需要,为每个菜单项的Click事件编写代码,完成一些特定的操作,右键菜单就可以使用了。最后效果如下图所示