VB实现屏蔽文本框右键菜单的复制、粘贴等功能的方法
本文实例讲述了VB屏蔽文本框中的右键菜单、复制、粘贴等功能的实现方法。该功能就是禁止文本框的右键功能,造成点击鼠标右键无效。是非常常见的一类实用功能。
具体的功能模块代码如下:
'========================================================== '|模块名|TextBoxDisableAbility '|说明|禁止文本框的功能 '==========================================================OptionExplicit PrivateDeclareFunctionSetWindowTextLib"user32"Alias"SetWindowTextA"(ByValhwndAsLong,ByVallpStringAsString)AsLong PrivateDeclareFunctionCallWindowProcLib"user32"Alias"CallWindowProcA"(ByVallpPrevWndFuncAsLong,ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong PrivateDeclareFunctionGetWindowLongLib"user32"Alias"GetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong)AsLong PrivateDeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong PrivateConstGWL_WNDPROC=(-4) PrivateConstWM_CUT=&H300'-------------剪切消息 PrivateConstWM_COPYAsLong=&H301'-------------复制消息 PrivateConstWM_PASTEAsLong=&H302'-------------粘贴消息 PrivateConstWM_CLEAR=&H303'-------------删除消息[右键菜单的删除] PrivateConstEM_UNDO=&HC7'-------------撤销消息 PrivateConstWM_CONTEXTMENU=&H7B'-------------右键菜单 PrivateprevWndProcAsLong PrivateFunctionWndProc(ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong SelectCaseMsg CaseWM_CUT,WM_COPY,WM_PASTE,WM_CLEAR,EM_UNDO,WM_CONTEXTMENU '这里处理自定义的事件,最好为空 CaseElse '回调系统函数处理 WndProc=CallWindowProc(prevWndProc,hwnd,Msg,wParam,lParam) EndSelect EndFunction PublicSubDisableAbility(TargetTextBoxAsTextBox) '程序启动时调用这个 prevWndProc=GetWindowLong(TargetTextBox.hwnd,GWL_WNDPROC) SetWindowLongTargetTextBox.hwnd,GWL_WNDPROC,AddressOfWndProc EndSub
本代码的功能屏蔽文本框的右键菜单、复制、粘贴等,在不少的程序中都可以见到这些功能。共享给各位VB爱好者,希望能对大家有所帮助!