如题。没分了,望好心人帮忙,这问题好像不是很复杂,谢谢回答,采纳时如果有分就给你加点。
回 japto,你那个把整个程序的文本框右弹都禁止了,我只想要部分禁止……
VB文本框禁止右键弹出菜单
答案:3 悬赏:0
解决时间 2021-03-07 17:07
- 提问者网友:傲气稳全场
- 2021-03-06 20:33
最佳答案
- 二级知识专家网友:堕落奶泡
- 2021-03-06 22:02
来个例子参考一下吧
'---------------------------------
窗体代码
'安装钩子
Private Sub Form_Load()
lHook(1) = SetWindowsHookEx(WH_MOUSE_LL, AddressOf CallMouseHookProc, App.hInstance, 0)
End Sub
'卸钩子
Private Sub Form_Unload(Cancel As Integer)
UnhookWindowsHookEx lHook(1)
End Sub
'模块代码
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WH_MOUSE_LL = 14
'鼠标消息
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public lHook(1) As Long
'----------------------------------------
'鼠标钩子
Public Function CallMouseHookProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If wParam = WM_RBUTTONDOWN Then
CallMouseHookProc = 1
End If
If wParam = WM_RBUTTONUP Then
CallMouseHookProc = 1
End If
If code <> 0 Then
CallMouseHookProc = CallNextHookEx(0, code, wParam, lParam)
End If
End Function
'---------------------------------
窗体代码
'安装钩子
Private Sub Form_Load()
lHook(1) = SetWindowsHookEx(WH_MOUSE_LL, AddressOf CallMouseHookProc, App.hInstance, 0)
End Sub
'卸钩子
Private Sub Form_Unload(Cancel As Integer)
UnhookWindowsHookEx lHook(1)
End Sub
'模块代码
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WH_MOUSE_LL = 14
'鼠标消息
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public lHook(1) As Long
'----------------------------------------
'鼠标钩子
Public Function CallMouseHookProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If wParam = WM_RBUTTONDOWN Then
CallMouseHookProc = 1
End If
If wParam = WM_RBUTTONUP Then
CallMouseHookProc = 1
End If
If code <> 0 Then
CallMouseHookProc = CallNextHookEx(0, code, wParam, lParam)
End If
End Function
全部回答
- 1楼网友:最后战士
- 2021-03-07 00:03
不用钩子,用以下API函数
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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
- 2楼网友:随心随缘不随便
- 2021-03-06 23:29
private sub command1_click()
text1.text = cstr(val(inputbox("请输入数值", "tips", 0)))
end sub
界面自己设计把 直接拉控件就行 名字都不用改了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯