Este artículo describe cómo implementar funciones como el menú contextual, copiar y pegar en un cuadro de texto blindado de VB. Esta función sirve para deshabilitar la función de clic derecho del cuadro de texto, lo que hace que la función de clic derecho del mouse no sea válida. Es un tipo muy común de función práctica.
El código del módulo de función específico es el siguiente:
'=================================================== ========='| Nombre del módulo| TextBoxDisableAbility'| Deshabilitar la función del cuadro de texto'===================== ==== =================================Opción ExplícitaPrivada Declarar Función SetWindowText Lib "user32" Alias " SetWindowTextA" (PorVal hwnd As Long, ByVal lpString As String) As LongPrivate Declarar Función 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) Como función de declaración LongPrivate GetWindowLong Lib Alias "user32" "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Función de declaración SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_WNDPROC = (- 4) Const privada WM_CUT = &H300 '-------------Cortar mensaje Private Const WM_COPY As Long = &H301 '-------------Copiar mensaje Private Const WM_PASTE As Long = &H302 '-- - ----------Pegar mensaje Private Const WM_CLEAR = &H303 '-------------Eliminar mensaje [Eliminar del menú contextual]Private Const EM_UNDO = &HC7 '--- - ---------Cancelar mensajePrivado Const WM_CONTEXTMENU = &H7B '-------------Menú contextualPrivate prevWndProc As LongFunción privada WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Seleccionar caso Msg Caso WM_CUT, WM_COPY, WM_PASTE, WM_CLEAR, EM_UNDO, WM_CONTEXTMENU 'Maneja eventos personalizados aquí, preferiblemente vacío Caso De lo contrario 'Procesamiento de la función del sistema de devolución de llamada WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam) End SelectEnd FunctionPublic Sub DisableAbility(TargetTextBox As TextBox) 'Llame a esto cuando se inicie el programa prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC) SetWindowLong TargetTextBox.hwnd , GWL_WNDPROC, Dirección de WndProcEnd Sub
La función de este código bloquea el menú contextual, copiar, pegar, etc. del cuadro de texto. Estas funciones se pueden ver en muchos programas. Compartiendolo con todos los entusiastas de VB, ¡espero que sea de ayuda para todos!