gpt4 book ai didi

c# - 捕获用户控件中的所有鼠标事件

转载 作者:行者123 更新时间:2023-11-30 22:33:06 32 4
gpt4 key购买 nike

我正在 try catch 用户控件中的所有鼠标事件(甚至是发生在子控件中的鼠标事件)。为此,我使用“覆盖 WndProc”方法:

protected override void WndProc(ref Message m)
{
System.Diagnostics.Debug.WriteLine(m.Msg.ToString());
base.WndProc(ref m);
}

我对鼠标事件特别感兴趣,但这似乎不起作用。我确实收到了鼠标按钮向上/向下事件,但我没有收到鼠标移动和鼠标滚轮事件。

有什么想法吗?

最佳答案

你能做的最好的就是实现 IMessageFilter尽在您的掌控之中。

 public class CustomMessageFilter:UserControl,IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
//Process your message here
throw new NotImplementedException();

}
}

您可以在 PreFilterMessage 方法中编写您的消息过滤逻辑。然后只需将它安装到 Main 方法中的 Message Filter 列表中即可。

 Application.AddMessageFilter(new CustomMessageFilter());

这是一个应用程序级别的 Hook ,这意味着您可以控制应用程序内的所有 Win32 消息。

关于c# - 捕获用户控件中的所有鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472204/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com