我们平时在用一些软件的时候,(如QQ的密码框,WEB网页的密码框),他们都具有防止粘贴中能
在以前,我在防止这方面的工作,当文本框获得焦点时,给他处理剪贴板数据,让其清空。
以下这个代码可不时上面的方法哦,
模块MOD1中:
Option Explicit
'石陆软件屋
Public Declare Function CallWindowProc Lib "user32.dll" 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 Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC As Long = -4
Public Const WM_PASTE As Long = &H302
Public g_hOldProc As Long
Public Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_PASTE Then
WndProc = 0
Else
WndProc = CallWindowProc(g_hOldProc, hwnd, uMsg, wParam, lParam)
End If
End Function
调用代码如下:
Private Sub Form_Load()
g_hOldProc = SetWindowLong(Text1.hwnd, GWL_WNDPROC, AddressOf WndProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Text1.hwnd, GWL_WNDPROC, g_hOldProc
End Sub