首页 > 编程 > Visual Basic > 正文

VB实现屏蔽文本框右键菜单的复制、粘贴等功能的方法

2020-01-31 16:31:12
字体:
来源:转载
供稿:网友

本文实例讲述了VB屏蔽文本框中的右键菜单、复制、粘贴等功能的实现方法。该功能就是禁止文本框的右键功能,造成点击鼠标右键无效。是非常常见的一类实用功能。

具体的功能模块代码如下:

'=========================================================='| 模 块 名 | TextBoxDisableAbility'| 说  明 | 禁止文本框的功能'==========================================================Option ExplicitPrivate Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As LongPrivate 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 LongPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_WNDPROC = (-4)Private Const WM_CUT = &H300 '-------------剪切消息Private Const WM_COPY As Long = &H301 '-------------复制消息Private Const WM_PASTE As Long = &H302 '-------------粘贴消息Private Const WM_CLEAR = &H303 '-------------删除消息[右键菜单的删除]Private Const EM_UNDO = &HC7 '-------------撤销消息Private Const WM_CONTEXTMENU = &H7B '-------------右键菜单Private prevWndProc   As LongPrivate 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_CUT, WM_COPY, WM_PASTE, WM_CLEAR, EM_UNDO, WM_CONTEXTMENU    '这里处理自定义的事件,最好为空  Case Else    '回调系统函数处理    WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)  End SelectEnd FunctionPublic Sub DisableAbility(TargetTextBox As TextBox)  '程序启动时调用这个  prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC)  SetWindowLong TargetTextBox.hwnd, GWL_WNDPROC, AddressOf WndProcEnd Sub

本代码的功能屏蔽文本框的右键菜单、复制、粘贴等,在不少的程序中都可以见到这些功能。共享给各位VB爱好者,希望能对大家有所帮助!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选