Cet article décrit comment implémenter des fonctions telles que le menu contextuel, le copier-coller dans une zone de texte protégée par VB. Cette fonction consiste à désactiver la fonction de clic droit de la zone de texte, ce qui rend la fonction de clic droit de la souris invalide. Il s’agit d’un type de fonction pratique très courant.
Le code spécifique du module fonction est le suivant :
'================================================== = ========='| Nom du module| TextBoxDisableAbility'| Désactiver la fonction de la zone de texte'==================== ==== =================================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) En tant que fonction de déclaration LongPrivate 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) Const privée WM_CUT = &H300 '-------------Coupez le message Private Const WM_COPY As Long = &H301 '-------------Copier le message Private Const WM_PASTE As Long = &H302 '-- - ----------Coller le message Private Const WM_CLEAR = &H303 '-------------Supprimer le message [Supprimer du menu contextuel]Private Const EM_UNDO = &HC7 '--- - ---------Annuler le messagePrivate Const WM_CONTEXTMENU = &H7B '-------------Menu contextuelPrivate prevWndProc As LongPrivate Function WndProc (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Sélectionnez Case Msg Case WM_CUT , WM_COPY, WM_PASTE, WM_CLEAR, EM_UNDO, WM_CONTEXTMENU 'Gérer les événements personnalisés ici, de préférence vides. Case Else 'Traitement de la fonction système de rappel WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam) End SelectEnd FunctionPublic Sub DisableAbility(TargetTextBox As TextBox) 'Appelle ceci lorsque le programme démarre prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC) SetWindowLong TargetTextBox.hwnd , GWL_WNDPROC, AddressOf WndProcEnd Sub
La fonction de ce code bloque le menu contextuel, copier, coller, etc. de la zone de texte. Ces fonctions peuvent être vues dans de nombreux programmes. Je le partage avec tous les passionnés de VB, j'espère qu'il sera utile à tout le monde !