Disabling copy, cut and paste in a textbox
In a module:
VB Code:
Declare Function SetWindowLong& Lib "user32" _ Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As _ Long, ByVal dwNewLong As Long) 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 Const GWL_WNDPROC = (-4) Const WM_COPY = &H301 Const WM_PASTE = &H302 Const WM_CUT = &H300 Private WndProcOld As Long Public Function WindProc(ByVal hwnd As Long, ByVal wMsg As _ Long, ByVal wParam As Long, ByVal lParam As Long) As Long If wMsg = WM_COPY Or wMsg = WM_PASTE Or wMsg = WM_CUT Then Exit Function WindProc = CallWindowProc(WndProcOld&, hwnd&, wMsg&, _ wParam&, lParam&) End Function Sub SubClassWnd(hwnd As Long) WndProcOld& = SetWindowLong(hwnd, GWL_WNDPROC, _ AddressOf WindProc) End Sub Sub UnSubclassWnd(hwnd As Long) SetWindowLong hwnd, GWL_WNDPROC, WndProcOld& WndProcOld& = 0 End Sub
In a form:
VB Code:
Private Sub Form_Load() SubClassWnd TextBox.hwnd End Sub Private Sub Form_Unload(Cancel As Integer) UnSubclassWnd TextBox.hwnd End Sub




Reply With Quote