拦截TextBox 双击消息
2015-09-04 17:38
399 查看
Option Explicit 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 Public 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 Const GWL_WNDPROC = (-4) Public Const WM_NCLBUTTONDBLCLK = &H203 'DoubleClick Message Public prevWndProc As Long Public Function WndProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If msg = WM_NCLBUTTONDBLCLK Then 'DoubleClick Message 'Eat The Message Else 'Other Message send to next WndProc = CallWindowProc(prevWndProc, hwnd, msg, wParam, lParam) End If End Function '************************************************************************* '**主要函数 '**添加 0-9 个?xtKairo txtIkisaki1 txtIkisaki2 '************************************************************************* Public Sub TxtDoubleClickMassage(Frm As Form) Dim i As Integer For i = 0 To 9 ' '区分符号 prevWndProc = GetWindowLong(Frm.txtKairo(i).hwnd, GWL_WNDPROC) SetWindowLong Frm.txtKairo(i).hwnd, GWL_WNDPROC, AddressOf WndProc '名称1 prevWndProc = GetWindowLong(Frm.txtIkisaki1(i).hwnd, GWL_WNDPROC) SetWindowLong Frm.txtIkisaki1(i).hwnd, GWL_WNDPROC, AddressOf WndProc '名称2 prevWndProc = GetWindowLong(Frm.txtIkisaki2(i).hwnd, GWL_WNDPROC) SetWindowLong Frm.txtIkisaki2(i).hwnd, GWL_WNDPROC, AddressOf WndProc Next End Sub
相关文章推荐
- Java基础针对自己薄弱环节总结08(线程上)
- 多态详解
- hdu3308(线段树,区间合并)
- 迭代器iterator
- js事件基础
- css笔记
- VB指针操作和消息钩子
- CentOS上Hadoop环境的搭建与管理
- 不要
- android:contentDescription 的用途
- PEP8 Python 编码规范
- Binary Tree Paths
- mac 修改文件夹权限.
- 文件和文件夹操作
- 我们的博客,起来嗨
- jQuery权威指南第二版学习笔记(第二章)
- 悲观锁和乐观锁
- OPEN(SAP) UI5 学习入门系列之三:MVC (上) - 模型
- 常见反编译产生错误 k__BackingField 解决办法
- POJ_3280 Cheapest Palindrome(DP)