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
相关文章
- 微前端02 : 乾坤的微应用加载流程分析(从微应用的注册到loadApp方法内部实现)
- Mongodb实现的关联表查询功能【population方法】
- 的数据解决Oracle获取前一天数据的实现方法(oracle获取前一天)
- Linux系统实现安全防护的方法(linux防护墙)
- 实现高可用:postgresql的主从复制原理和配置方法(postgresql主从)
- MySQL C语言批量插入功能实现方法简介(mysqlc批量插入)
- Linux中实现用户信号传输的方法(linux用户信号)
- SQL Server中实现行号功能的简单方法(sqlserver加行号)
- db2同步Oracle数据库的实现方法(db2 同步oracle)
- MVC链接Oracle数据库的实现方法(Mvc链接oracle)
- MySQL实现下拉选项功能的方法及应用(mysql下拉选项)
- 使用Redis实现计数功能的简单方法(redis 计数方法)
- js文件中调用js的实现方法小结
- JQueryUI的拖拽功能实现方法小结
- Android软件自动更新功能实现的方法
- 使用Java实现简单的server/client回显功能的方法介绍
- DHCP:解析开发板上动态获取ip的2种实现方法详解
- c++实现strcat字符串连接库函数的方法详解
- 解析如何用两个栈来实现队列的方法
- JavaScrip实现PHPprint_r的数功能(三种方法)
- quartz实现定时功能实例详解(servlet定时器配置方法)
- Android通讯录开发之删除功能的实现方法
- thinkphp浏览历史功能实现方法
- asp.net在事件中启动线程来打开一个页面的实现方法
- PHP简单实现“相关文章推荐”功能的方法
- asp.net中IDataParameter调用存储过程的实现方法