窗体如何屏蔽鼠标点击事件?

jshzp 2011-09-16 05:24:27
我想屏蔽窗体接收鼠标的点击动作,代码如下:

protected override void DefWndProc(ref Message m)
{
try
{
switch (m.Msg)
{
case WM_LBUTTONDBLCLK:
break;
case WM_LBUTTONDOWN:
break;
default:
base.DefWndProc(ref m);//调用基类函数处理非自定义消息。
break;
}
}
catch
{ }
}

上面代码的想法是过滤掉鼠标的click和buttondown消息,不让窗体接收到。但是调试发现,达不到预想的效果,什么原因呢?谢谢指点!
...全文
853 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshzp 2011-09-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xuchonglei 的回复:]
补充下楼上的
注意实现IMessageFilter
[/Quote]
IMessageFilterz这个接口应该有门儿,可以稍详细说下吗,就像9楼zyloveyrf那样,我就能了解了。谢谢你和9楼zyloveyrf的回复!
jshzp 2011-09-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xuchonglei 的回复:]
实现方法 public bool PreFilterMessage(ref System.Windows.Forms.Message m)
在该方法中处理鼠标消息,处理完毕后返回true.应用程序将不再调度该消息.
[/Quote]
明白了,谢谢!
Tim_Andy 2011-09-17
  • 打赏
  • 举报
回复
实现方法 public bool PreFilterMessage(ref System.Windows.Forms.Message m)
在该方法中处理鼠标消息,处理完毕后返回true.应用程序将不再调度该消息.
Tim_Andy 2011-09-16
  • 打赏
  • 举报
回复
补充下楼上的
注意实现IMessageFilter
萧炎 2011-09-16
  • 打赏
  • 举报
回复
聽别人说还可以用钩子技术 不过我不会

以上就能实现LZ要的效果了
萧炎 2011-09-16
  • 打赏
  • 举报
回复
方法:
public bool PreFilterMessage(ref System.Windows.Forms.Message m)
{
richTextBox1.AppendText(NO++.ToString()+ ": "+m.ToString()+ "\r\n ");
if (m.Msg > = 513 && m.Msg <= 515)//鼠标左键按下、弹起和双击的消息
{
return true;//拦截消息
}
return false;//不拦截消息
}
jshzp 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sgzhou12345 的回复:]
占个位置学习一下
顶顶帖子,接分中........
[/Quote]
你已经占了俩位置了!
jshzp 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 icesun963 的回复:]
DefWndProc
如果没理解错的,这个时候消息已经传递过来了。
去看看 消息 hook
[/Quote]
我理解:消息首先传到我代码中重写的那个DefWndProc(),然后再把default的消息传给原有的那个DefWndProc()方法。
不知道我的理解对不?
guojh021 2011-09-16
  • 打赏
  • 举报
回复
HOOK吧
逐风 2011-09-16
  • 打赏
  • 举报
回复
DefWndProc
如果没理解错的,这个时候消息已经传递过来了。
去看看 消息 hook
jshzp 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cecilia2006 的回复:]
个人感觉这个屏蔽只是 对于你这个应用程序的。楼主可以找找例子。找个全局的钩子,屏蔽全局的鼠标键盘消息。
[/Quote]
谢谢回复!我这里只需要针对我的应用程序,让this接收不到鼠标的相关操作就行了。hook占用资源相对较多,不打算用。
cecilia2006 2011-09-16
  • 打赏
  • 举报
回复
个人感觉这个屏蔽只是 对于你这个应用程序的。楼主可以找找例子。找个全局的钩子,屏蔽全局的鼠标键盘消息。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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