正文

VB实现窗口的弹出式菜单 2005-09-25 22:42:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/5337.html

分享到:

VB实现窗口的弹出式菜单   在Windows95、Windows98或NT的风格中,有按动鼠标器右键弹出下拉菜单的操作,在VB执行环境下,有一些 控件本身具有弹下拉菜单的功能,如TexTbox控件等,但大多数编辑类控件以及窗体本身却没有此功能,要在窗口中任意位置实现 PopUpMenu(弹出式菜单),可借助VB的菜单工具来实现。   首先,打开VB的“工具”菜单条,利用“菜单编辑器”为窗体生成一个菜单:   标题(Caption) 菜单条名(Name)   编辑 menuEdit   ……复制 mnuCopy   ……剪切 munCut   其次,将生成的menuEdit菜单设置为不可视。   Private Sub Form_Load()   Me.menuEdit.Visibe=False   'menuEdit菜单设置为不可视   End Sub   然后,利用MouseDown事件实现任意位置弹出PopUpMenu,如下例:   本例中以RichTexBox控件为例,在其上面实现复制、剪切功能。   1.复制功能的实现。   Private Sub MnuCopy_Click()   Clipboar.Clear'将剪贴板清空   '将RichTexBox控件上选择上的内容复制到剪贴板   Clipboard.SetTextRichTexBox1.SelText   End Sub   2.剪切功能的实现。   Private Sub MnuCut_Click()   Clipboard.Clear '将剪贴板清空   '将RichTextBox控件上选择了的内容复制到剪贴板   Clipboard.SetTextRichBox1.SelText   '将RichTexBox控件上选择了的内容删除   SendKeys"{DELETE}",True   End Sub   3.在RichTexBox控件的MouseDown事件中实现任意位置弹出PopUPMenu。   OPrivate Sub RichTexBox1_MouseDown(Button As Integer,Shift As Integer,x As Single,Y As Single)   Dim MnuFile AS Menu '声明一个菜单类型的变量   Set munFile=Me.MenuEdit '将MenuEdit赋给菜单变量   if Button=2 Then '判断是否按动鼠标器右键   '判断RichTexBox控件上选择了的内容是否存在,决定复制、剪切菜单条是否可操作。   If Len(RichTexBox.Text)=0 Or Len(RichTexBox.SelText)=0 Then   mnuCopy.Enabled=Flase '复制菜单条不可操作。   nmuCut.Enabled=False '剪切菜单条不可操作。   nmuCopy.Enabled=True '复制菜单条可操作。   nmuCut.Enabled=True '剪切菜单条可操作。   End IF   PopupMenu mnuFile '弹出PopUpMenu。   End If   End Sub   这样,在VB执行环境中,操作窗体上的RichTexBox控件,按动鼠标器右键就可弹出下拉菜单,实现复制、剪切功能。   在Windows95、Windows98或NT的风格中,有按动鼠标器右键弹出下拉菜单的操作,在VB执行环境下,有一些 控件本身具有弹下拉菜单的功能,如TexTbox控件等,但大多数编辑类控件以及窗体本身却没有此功能,要在窗口中任意位置实现 PopUpMenu(弹出式菜单),可借助VB的菜单工具来实现。   首先,打开VB的“工具”菜单条,利用“菜单编辑器”为窗体生成一个菜单:   标题(Caption) 菜单条名(Name)   编辑 menuEdit   ……复制 mnuCopy   ……剪切 munCut   其次,将生成的menuEdit菜单设置为不可视。   Private Sub Form_Load()   Me.menuEdit.Visibe=False   'menuEdit菜单设置为不可视   End Sub   然后,利用MouseDown事件实现任意位置弹出PopUpMenu,如下例:   本例中以RichTexBox控件为例,在其上面实现复制、剪切功能。   1.复制功能的实现。   Private Sub MnuCopy_Click()   Clipboar.Clear'将剪贴板清空   '将RichTexBox控件上选择上的内容复制到剪贴板   Clipboard.SetTextRichTexBox1.SelText   End Sub   2.剪切功能的实现。   Private Sub MnuCut_Click()   Clipboard.Clear '将剪贴板清空   '将RichTextBox控件上选择了的内容复制到剪贴板   Clipboard.SetTextRichBox1.SelText   '将RichTexBox控件上选择了的内容删除   SendKeys"{DELETE}",True   End Sub   3.在RichTexBox控件的MouseDown事件中实现任意位置弹出PopUPMenu。   OPrivate Sub RichTexBox1_MouseDown(Button As Integer,Shift As Integer,x As Single,Y As Single)   Dim MnuFile AS Menu '声明一个菜单类型的变量   Set munFile=Me.MenuEdit '将MenuEdit赋给菜单变量   if Button=2 Then '判断是否按动鼠标器右键   '判断RichTexBox控件上选择了的内容是否存在,决定复制、剪切菜单条是否可操作。   If Len(RichTexBox.Text)=0 Or Len(RichTexBox.SelText)=0 Then   mnuCopy.Enabled=Flase '复制菜单条不可操作。   nmuCut.Enabled=False '剪切菜单条不可操作。   nmuCopy.Enabled=True '复制菜单条可操作。   nmuCut.Enabled=True '剪切菜单条可操作。   End IF   PopupMenu mnuFile '弹出PopUpMenu。   End If   End Sub   这样,在VB执行环境中,操作窗体上的RichTexBox控件,按动鼠标器右键就可弹出下拉菜单,实现复制、剪切功能。

阅读(2421) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册