屏蔽TextBox的右键菜单 >>步骤1----建立新工程,在窗体上放置一个TextBox1; >>步骤2----在窗体上创建一菜单; >>步骤3----添加以模块,加入如下代码: =============================================================== Public OldWinProc As Long Public Const WM_CONTEXTMENU = &H7B 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 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 Public Function SubClass_WndMessage(ByVal hWnd As _ OLE_HANDLE,ByVal Msg As OLE_HANDLE, ByVal wParam As OLE_HANDLE, _ ByVal lParam As Long) As Long If Msg <> WM_CONTEXTMENU Then SubClass_WndMessage = CallWindowProc(OldWinProc, _ hWnd, Msg,wParam, lParam) Exit Function End If SubClass_WndMessage = True End Function =============================================================== >>步骤4----在窗体中加入如下代码: =============================================================== Private Const GWL_WNDPROC = (-4) Private Sub Text1_MouseDown(Button As Integer, Shift As _ Integer, X As Single, Y As Single) If Button = 1 Then Exit Sub OldWinProc = GetWindowLong(Text1.hWnd, GWL_WNDPROC) Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, AddressOf _ SubClass_WndMessage) End Sub Private Sub Text1_MouseUp(Button As Integer, Shift _ As Integer, X As Single, Y As Single) If Button = 1 Then Exit Sub Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, OldWinProc) End Sub ===============================================================
private sub text1_mousedown(button as integer ,shift as integer,x as single,y as single) text1.enabled=false text1.enabled=true popupmenu yourmenu end sub 试一下!
>>步骤1----建立新工程,在窗体上放置一个TextBox1; >>步骤2----在窗体上创建一菜单; >>步骤3----添加以模块,加入如下代码: ===============================================================
Public OldWinProc As Long
Public Const WM_CONTEXTMENU = &H7B 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
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
Public Function SubClass_WndMessage(ByVal hWnd As _
OLE_HANDLE,ByVal Msg As OLE_HANDLE, ByVal wParam As OLE_HANDLE, _
ByVal lParam As Long) As Long
If Msg <> WM_CONTEXTMENU Then
SubClass_WndMessage = CallWindowProc(OldWinProc, _
hWnd, Msg,wParam, lParam)
Exit Function
End If
SubClass_WndMessage = True
End Function
===============================================================
>>步骤4----在窗体中加入如下代码: ===============================================================
Private Const GWL_WNDPROC = (-4) Private Sub Text1_MouseDown(Button As Integer, Shift As _
Integer, X As Single, Y As Single) If Button = 1 Then Exit Sub
OldWinProc = GetWindowLong(Text1.hWnd, GWL_WNDPROC)
Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, AddressOf _
SubClass_WndMessage)
End Sub Private Sub Text1_MouseUp(Button As Integer, Shift _
As Integer, X As Single, Y As Single)
If Button = 1 Then Exit Sub
Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, OldWinProc)
End Sub
===============================================================
text1.enabled=false
text1.enabled=true
popupmenu yourmenu
end sub
试一下!