VB實現屏蔽文本框右鍵菜單的複製、粘貼等功能的方法

這篇文章主要介紹了VB實現屏蔽文本框右鍵菜單的複製、粘貼等功能,是非常實用的一個功能,需要的朋友可以參考下

本文實例講述了VB屏蔽文本框中的右鍵菜單、複製、粘貼等功能的實現方法。該功能就是禁止文本框的右鍵功能,造成點擊鼠標右鍵無效。是非常常見的一類實用功能。

具體的功能模塊代碼如下:

'==========================================================
'| 模 塊 名 | TextBoxDisableAbility
'| 說  明 | 禁止文本框的功能
'==========================================================Option Explicit
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private 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
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_WNDPROC = (-4)
Private Const 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 Long
Private 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
    '這裏處理自定義的事件,最好爲空
  Case Else
    '回調系統函數處理
    WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
  End Select
End Function
Public Sub DisableAbility(TargetTextBox As TextBox)
  '程序啓動時調用這個
  prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC)
  SetWindowLong TargetTextBox.hwnd, GWL_WNDPROC, AddressOf WndProc
End Sub

本代碼的功能屏蔽文本框的右鍵菜單、複製、粘貼等,在不少的程序中都可以見到這些功能。共享給各位VB愛好者,希望能對大家有所幫助!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章