В этой статье описывается, как реализовать такие функции, как контекстное меню, копирование и вставка в экранированное текстовое поле VB. Эта функция предназначена для отключения функции щелчка правой кнопкой мыши в текстовом поле, в результате чего функция щелчка правой кнопкой мыши становится недействительной. Это очень распространенный тип практической функции.
Код конкретного функционального модуля следующий:
'============================================== = ========='| Имя модуля| TextBoxDisableAbility'| Отключить функцию текстового поля'=================== ==== ================================ Option ExplicitPrivate Declare Function SetWindowText Lib "user32" Alias " SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As LongPrivate Объявить функцию CallWindowProc Lib "user32" Псевдоним "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) Как функция LongPrivate объявляет псевдоним GetWindowLong Lib "user32" «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Объявить функцию SetWindowLong Lib «user32» Псевдоним «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_WNDPROC = (- 4)Частная константа WM_CUT = &H300 '-------------Вырезать сообщение Private Const WM_COPY As Long = &H301 '-------------Копировать сообщение Private Const WM_PASTE As Long = &H302 '-- - ----------Вставить сообщение Private Const WM_CLEAR = &H303 '-------------Удалить сообщение [Удалить из контекстного меню]Private Const EM_UNDO = &HC7 '--- - ---------Отменить сообщениеPrivate Const WM_CONTEXTMENU = &H7B '-------------Контекстное менюPrivate prevWndProc As LongPrivate Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Выберите регистр регистр сообщений WM_CUT , WM_COPY, WM_PASTE, WM_CLEAR, EM_UNDO, WM_CONTEXTMENU 'Здесь обрабатываются пользовательские события, желательно пустые. Case Else 'Обработка функции системы обратного обратного обращения wndproc = callwindowproc (prevwndproc, hwnd, msg, wparam, lparam) end select functionpublic subshipability (TargetTextbox as TextBox)' Вызовите это, когда программа начинает prevwndproc = getWindowlong (targetTextBox.hwnd, gwl_wndproc) setWindOngOng (TargetTextBox.hwnd, gwl_wndproc) setWindOngOng (TargetTextBox.hwnd, gwl_wndproc) setWindOngOng. , GWL_WNDPROC, адрес подпрограммы WndProcEnd
Функция этого кода блокирует контекстное меню, копирование, вставку и т. д. текстового поля. Эти функции можно увидеть во многих программах. Поделюсь этим со всеми энтузиастами VB, надеюсь, оно будет всем полезно!