Http://www.cnng.net  首页 原创软件   VB文挡  VB资源   乱舞人生  资源   Tags  给我留言 
用户登陆
用户:
密码:
 

站点日历
73 2024 - 4 48
 123456
78910111213
14151617181920
21222324252627
282930


站点统计

最新日志
窗体BS 进度条控件
晴天 屏蔽文本框点右键时的弹出菜单   [ 日期:2007-03-06 ]
-----------以下代码在模块


程序代码:[ 复制代码 ] 
Option Explicit 

Public Declare Function SetWindowLong Lib "user32" Alias _ 
 "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _ 
 ByVal dwNewLong As Long) As Long 
  
Public 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 

Public Const GWL_WNDPROC = (-4) 

Public Const WM_CONTEXTMENU = &H7B 

Global lpPrevWndProc As Long 
Global gHW As Long 

Public Sub Hook() 
 lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _ 
 AddressOf gWindowProc) 
End Sub 

Public Sub Unhook() 
 Dim temp As Long 
 temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc) 
End Sub 

Public Function gWindowProc(ByVal hWnd As Long, ByVal Msg As Long, _ 
 ByVal wParam As Long, ByVal lParam As Long) As Long 
 If Msg = WM_CONTEXTMENU Then 
 Debug.Print "Intercepted WM_CONTEXTMENU at " & Now 
 gWindowProc = True 
 Else ' Send all other messages to the default message handler 
 gWindowProc = CallWindowProc(lpPrevWndProc, hWnd, Msg, wParam, _ 
 lParam) 
 End If 
End Function 



--------以下代码在 窗体

程序代码:[ 复制代码 ] 
Option Explicit 

Public Declare Function SetWindowLong Lib "user32" Alias _ 
 "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _ 
 ByVal dwNewLong As Long) As Long 
  
Public 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 

Public Const GWL_WNDPROC = (-4) 

Public Const WM_CONTEXTMENU = &H7B 

Global lpPrevWndProc As Long 
Global gHW As Long 

Public Sub Hook() 
 lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _ 
 AddressOf gWindowProc) 
End Sub 

Public Sub Unhook() 
 Dim temp As Long 
 temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc) 
End Sub 

Public Function gWindowProc(ByVal hWnd As Long, ByVal Msg As Long, _ 
 ByVal wParam As Long, ByVal lParam As Long) As Long 
 If Msg = WM_CONTEXTMENU Then 
 Debug.Print "Intercepted WM_CONTEXTMENU at " & Now 
 gWindowProc = True 
 Else ' Send all other messages to the default message handler 
 gWindowProc = CallWindowProc(lpPrevWndProc, hWnd, Msg, wParam, _ 
 lParam) 
 End If 
'http://www.cnng.net
End Function



相关链接:vb | 屏蔽 | 右键 | 弹出菜单

[阅读字体大小: ]
[本日志由 admin 于 2013-11-01 10:48 PM 编辑]
引用通告地址 (0):
复制引用地址http://www.cnng.net/blog/trackback.asp?tbID=28
复制引用地址http://www.cnng.net/blog/trackback.asp?tbID=28&CP=GBK
暂时没有评论
发表评论 - 不要忘了输入验证码哦!
作者: 用户名:  密码:   注册? 验证码: 
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情