vb6.0里面如何右键单击文本框弹出菜单项 5

 我来答
沙慧月03
2014-03-25 · TA获得超过2157个赞
知道大有可为答主
回答量:2717
采纳率:100%
帮助的人:3623万
展开全部

楼上的会先弹出系统菜单再弹出自己的菜单,所以要先屏蔽系统菜单,首先要拦截右键信息,新建一个模块

Option Explicit
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_WNDPROC = (-4)
Private Const WM_CONTEXTMENU = &H7B                                             '-------------右键菜单
Private prevWndProc     As Long
Private Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Select Case Msg
    Case WM_CONTEXTMENU
        '这里处理自定义的事件,最好为空
    Case Else
        '回调系统函数处理
        WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
    End Select
End Function
Public Sub DisableAbility(TargetTextBox As TextBox)
    prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC)
    SetWindowLong TargetTextBox.hwnd, GWL_WNDPROC, AddressOf WndProc
End Sub

然后在你的form窗体里写入

Private Sub Form_Load()
DisableAbility Text1'屏蔽系统右键
End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If Button = vbRightButton Then PopupMenu rrr'假设自己的菜单是rrr,弹出自己的菜单
End Sub
pivotstar
推荐于2017-09-28 · TA获得超过471个赞
知道小有建树答主
回答量:444
采纳率:33%
帮助的人:502万
展开全部
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then PopupMenu mnu_mymenu
End Sub

mnu_mymenu 就是使用菜单编辑器设置的 第一层名称(设置在该次层的名称标题都会出现)
第一层名称的“标题”可以随便写,(这个标题设置为隐藏、“可见”选项不要打勾)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式