vb6屏蔽鼠标右键菜单
'模板------------------
Option Explicit
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
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public OldWindowProc As Long
Public Const WM_CONTEXTMENU = &H7B ' µ±ÓÒ»÷Îı¾¿òʱ£¬²úÉúÕâÌõÏûÏ¢
Const GWL_WNDPROC = (-4)
Public Function SubClass1_WndMessage(ByVal hWnd As OLE_HANDLE, ByVal Msg As OLE_HANDLE, ByVal wp As OLE_HANDLE, ByVal lp As Long) As Long
If Msg = WM_CONTEXTMENU Then
SubClass1_WndMessage = True
Else
SubClass1_WndMessage = CallWindowProc(OldWindowProc, hWnd, Msg, wp, lp)
' Èç¹ûÏûÏ¢²»ÊÇWM_CONTEXTMENU£¬¾Íµ÷ÓÃĬÈϵĴ°¿Úº¯Êý´¦Àí
End If
End Function
Public Sub Hook(hWnd As Long)
OldWindowProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf SubClass1_WndMessage)
End Sub
Public Sub UnHook(hWnd As Long)
Call SetWindowLong(hWnd, GWL_WNDPROC, OldWindowProc)
End Sub
’窗体------------------
Option Explicit
Private Sub Form_Load()
Hook Me.Text1.hWnd
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnHook Me.Text1.hWnd
End Sub


浙公网安备 33010602011771号