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

所属分类: 软件编程 / vb 阅读数: 266
收藏 0 赞 0 分享

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

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

'==========================================================
'| 模 块 名 | TextBoxDisableAbility
'| 说  明 | 禁止文本框的功能
'==========================================================Option Explicit
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) 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
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private 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 Long
Private 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 Select
End Function
Public Sub DisableAbility(TargetTextBox As TextBox)
  '程序启动时调用这个
  prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC)
  SetWindowLong TargetTextBox.hwnd, GWL_WNDPROC, AddressOf WndProc
End Sub

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

更多精彩内容其他人还在看

VB编程的八个优良习惯第1/2页

VB编程的八个优良习惯
收藏 0 赞 0 分享

VB XMLHTTP使用方法

VB判断地址是否存在的XMLHTTP方法
收藏 0 赞 0 分享

vb简易计算器源码

本人一觉醒来闲得无聊,正在学习VB,便用VB写个简易的计算器吧!巩固基础
收藏 0 赞 0 分享

VB简易记事本实现代码

VB简易记事本实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

分享如何在VB中调用VC编写的DLL

一般来说,VB和VC共同编程有3种方式:一种是VC生成DLL,在VB中调用DLL;一种是VC生成ActiveX控件(.ocx),在VB中插入;还有一种是在VC中生成ActiveX Automation服务器,在VB中调用
收藏 0 赞 0 分享

VBA中连接SQLSERVER数据库例子

这篇文章主要介绍了VBA中连接SQLSERVER数据库例子,VBA是指Visual Basic for Applications,是Visual Basic的一种宏语言,需要的朋友可以参考下
收藏 0 赞 0 分享

VB实现的16位和32位md5加密代码分享

这篇文章主要介绍了VB实现的16位和32位md5加密代码分享,需要的朋友可以参考下
收藏 0 赞 0 分享

VBA中操作Excel常用方法总结

这篇文章主要介绍了VBA中操作Excel常用方法总结,包含关闭工作簿、打开工作簿、切换工作表等,需要的朋友可以参考下
收藏 0 赞 0 分享

VB6中的LSet语句和RSet语句详解

这篇文章主要介绍了VB6中的LSet语句和RSet语句详解,LSet语句和RSet语句不太常用,所以知道的人不多,需要的朋友可以参考下
收藏 0 赞 0 分享

VB调用Word拼写检查功能实例

这篇文章主要介绍了VB调用Word拼写检查功能,非常实用的功能,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多