Help:如何用api屏蔽Mouse右键[无内容]

ntmyxz1 2000-01-16 12:50:00
...全文
260 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
benbenlittle 2000-02-26
  • 打赏
  • 举报
回复
我同意chw73的意见
不过用完以后要
SetWindowLong Me.hewnd ,GWL_WNDPROC, prevWndproc
否则程序会当掉的
chw73 2000-01-31
  • 打赏
  • 举报
回复
定义如下函数
Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If hwnd = Form1.hwnd Then
WndProc = CallWindowProc(prevWndProc(0), hwnd, Msg, wParam, lParam)

If Msg = WM_NCHITTEST And WndProc = HTCLIENT Then
If Form1.IsInImage(lParam Mod 65536, lParam \ 65536) Then
WndProc = HTCAPTION
End If
End If
Else
If Msg = WM_RBUTTONDOWN Then
Msg = WM_LBUTTONDOWN
End If
WndProc = CallWindowProc(prevWndProc(1), hwnd, Msg, wParam, lParam)
End If
End Function
在 form_load 中
Private Sub Form_Load()
prevWndProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
SetWindowLong Me.hwnd, GWL_WNDPROC, AddressOf WndProc
End Sub
这可以屏蔽掉右键
dedien 2000-01-24
  • 打赏
  • 举报
回复
你可以通过这一途径实现这一功能,但对VB而言似乎不太好做:
利用自己的FORM完全仿真DESKTOP和SYSTRAY,
在自己的FORM中屏蔽右键功能,或定义右键功能,
那就太简单了。
(应该可以用VB做到,可以使用几个API函数如:BitBlt,GetDC,ReleaseDC&etc.)
甚至你可使用SystemParametersInfo来屏蔽ALT-F4和CTRL-ESC等系统热键。
Tyro 2000-01-24
  • 打赏
  • 举报
回复
能说说你到底想要干什么吗?
zm 2000-01-23
  • 打赏
  • 举报
回复
我想不用API就可以解决,可以用如下的方法:
Private Sub Control_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)'Control为你用到的控件的名称
if button = vbRightButton then
Control.disable 屏蔽掉右键
Control.enable 恢复右键
end if
End Sub
例如屏蔽Text控件的右键:

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single
If Button = vbRightButton Then
Text1.Enabled = False '屏蔽掉右键的功能
Text1.Enabled = True '恢复右键的功能

End If
End Sub
King 2000-01-20
  • 打赏
  • 举报
回复
不响应右键事件不就可以了吗?
zzssyyvc 2000-01-19
  • 打赏
  • 举报
回复
setwindowlong
getwindowlong
callwindowproc
CJ 2000-01-19
  • 打赏
  • 举报
回复
不错,不错,注意的是,需要做全局钩子,即DLL而非EXE
zyb 2000-01-19
  • 打赏
  • 举报
回复
截获鼠标右键的相关消息,然后屏蔽掉即可。
kxy 2000-01-16
  • 打赏
  • 举报
回复
WM_RBUTTONDOWN
Result = 0;
ntmyxz1 2000-01-16
  • 打赏
  • 举报
回复
怎样在VB中截获右键消息,使他不起作用.屏蔽程序的Mouse右键.
kxy 2000-01-16
  • 打赏
  • 举报
回复
我想这样的api好像没有,因为不符合事件驱动.
截获右键消息,使他不起作用是可以的.
如果只想屏蔽你的程序的Mouse右键,很简单.
如果屏蔽所有的Mouse右键,要使用windows hook技术.(系统钩子)
资料在本站上有,vc中,

1,485

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧