In diesem Artikel wird beschrieben, wie Sie Funktionen wie Rechtsklickmenü, Kopieren und Einfügen in einem VB-geschützten Textfeld implementieren. Diese Funktion dient dazu, die Rechtsklickfunktion des Textfelds zu deaktivieren, wodurch die Rechtsklickfunktion der Maus ungültig wird. Es handelt sich um eine sehr häufige Art praktischer Funktion.
Der spezifische Funktionsmodulcode lautet wie folgt:
'============================================== ========='|. TextBoxDisableAbility'| ==== ===============================Option ExplicitPrivate Declare Function SetWindowText Lib „user32“ Alias “ SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As LongPrivate 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) Als LongPrivate deklarieren Sie die Funktion GetWindowLong Lib „user32“ Alias „GetWindowLongA“ (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib „user32“ Alias „SetWindowLongA“ (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_WNDPROC = (- 4)Private Const WM_CUT = &H300 '-------------Nachricht ausschneiden Private Const WM_COPY As Long = &H301 '-------------Nachricht kopieren Private Const WM_PASTE As Long = &H302 '-- - ----------Nachricht einfügen Private Const WM_CLEAR = &H303 '-------------Nachricht löschen [Aus Rechtsklick-Menü löschen]Private Const EM_UNDO = &HC7 '--- - ---------Message abbrechenPrivate Const WM_CONTEXTMENU = &H7B '-------------Rechtsklick-MenüPrivate prevWndProc As LongPrivate 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 'Benutzerdefinierte Ereignisse hier verarbeiten, vorzugsweise leerer Fall, sonst 'Callback-Systemfunktionsverarbeitung WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam) End SelectEnd FunctionPublic Sub DisableAbility(TargetTextBox As TextBox) 'Rufen Sie dies auf, wenn das Programm startet prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC) SetWindowLong TargetTextBox.hwnd , GWL_WNDPROC, AddressOf WndProcEnd Sub
Die Funktion dieses Codes blockiert das Rechtsklickmenü, das Kopieren, Einfügen usw. des Textfelds. Diese Funktionen sind in vielen Programmen zu sehen. Ich teile es mit allen VB-Enthusiasten und hoffe, dass es für alle hilfreich sein wird!