智能手机存储芯片:【引用】VB中屏蔽TextBox的右键菜单
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 15:45:14
一:新建一个模块。模块代码如下:
Public OldProc As Long
Public Const GWL_WNDPROC = (-4)
Public Const WM_CONTEXTMENU = &H7B&
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
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 TextWndProc(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If wMsg = WM_CONTEXTMENU Then
TextWndProc = 0
Exit Function
End If
TextWndProc = CallWindowProc(OldProc, hWnd, wMsg, wParam, lParam)
End Function
二:新建一个窗体,添加一个 text控件和 check控件
注:check控件的 caption = 保留 TextBox 的右键菜单
Private Sub Check1_Click()
If Check1 = 0 Then
OldProc = GetWindowLong(Text1.hWnd, GWL_WNDPROC)
SetWindowLong Text1.hWnd, GWL_WNDPROC, AddressOf TextWndProc
Else
SetWindowLong Text1.hWnd, GWL_WNDPROC, OldProc
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Check1 = 0 Then
SetWindowLong Text1.hWnd, GWL_WNDPROC, OldProc
End If
End Sub