`
touchinsert
  • 浏览: 1352069 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[转]Winform中在Form上截取消息的两种方法

 
阅读更多
比较常用的是重载Form的DefWndProc方法,例如截取鼠标按下的消息:
protected override void DefWndProc(ref Message m)
{
if ( m.Msg == 0x0201 )
{
MessageBox.Show(m.Msg.ToString());
}
else
{
base.DefWndProc (ref m);
}
}
还可以通过另一种办法,使用IMessageFilter 接口:
public class MessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 0x0201)
{
MessageBox.Show("WM_LBUTTONDOWN is: " + m.Msg);
return true;
}
return false;
}

}
然后使用Application.AddMessageFilter方法,例如:
private static MessageFilter msgFliter = new MessageFilter();
在Main方法中注册消息筛选器:
Application.AddMessageFilter(msgFliter);
如果要取消注册,可以调用Application.RemoveMessageFilter方法

在这里有一个Windows的MessageID的枚举,挺有用的,好几次都忘了地址,这次写在这里好好保存
Windows Message ID constants
分享到:
评论

相关推荐

    C# WinForm 在Panel中添加Form 教程+源码

    在C# WinForm开发中,有时我们希望实现一种类似MDI(Multiple Document Interface)的界面效果,但又不满足于MDI的默认样式。这时,我们可以利用Panel控件来达到目的,实现更自定义化的界面设计。本教程将详细介绍...

    C#WinForm中对文档的导入字符串的各种截取

    在C# WinForm应用程序开发中,常常需要处理各种文本数据,包括从文档中导入字符串并进行截取操作。本文将详细探讨如何在C# WinForm环境下实现这一功能,旨在帮助开发者更好地理解和应用字符串处理技术。 首先,理解...

    C# winform可忽略消息的自定义消息队列

    标题中的“C# Winform可忽略消息的自定义消息队列”指的是创建一个特定的机制,允许在WinForm应用中,对控件事件产生的消息进行管理和筛选,确保只有最终需要的消息才会被执行,从而提高程序的响应速度和流畅性。...

    winForm中主窗体Form获取弹出窗体的中值

    弹出窗体是 WinForm 中一种常用的交互方式,用于在主窗体中弹出一个临时的窗体,以便用户输入或选择某些选项。在本文中,我们将介绍如何在 WinForm 中主窗体 Form 获取弹出窗体的中值。 一、WinForm 中的窗体(Form...

    winform c# 进制转换

    在C#编程环境中,Winform应用常常用于创建用户界面,而进制转换是计算机科学的基础概念,涉及到二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)之间的数值转换。下面将详细阐述如何...

    C# winform 实时消息提示框

    在C# WinForm开发中,实时消息提示框是不可或缺的一部分,它用于向用户显示瞬时信息,例如系统通知、操作结果或警告。本项目提供的"TaskbarNotifierDemo"是一个实现此类功能的示例,展示了三种不同的样式风格,具有...

    Winform自定义消息框,好看的消息提示Alert源码

    Winform自定义消息框,好看的消息提示Alert源码,国外大神,很基础的实现,可以在此基础上进行优化和进一步调整。Winform控件、Winform优美提示框、消息框、Alert信息弹窗、Notification

    winform实现图片任意角度旋转

    在Windows Forms(Winform)应用开发中,有时候我们需要实现对图片进行任意角度的旋转功能,例如用户可能希望在设计界面或者图像编辑应用中调整图片的角度。这个任务可以通过使用GDI+(Graphics Device Interface ...

    c# winform 鼠标、键盘消息拦截

    首先,`PreFilterMessage`方法是WinForm应用程序中的一个关键点,它允许我们在消息传递到控件之前对其进行处理。这个方法是`Application`类的一个静态成员,可以通过重写`Application.ThreadException`事件来实现...

    c# winform webbrowser页面中js调用winform类方法

    通过以上步骤,你就能实现JavaScript在WinForm的`WebBrowser`控件中调用C#类方法的功能。这个"jsInWebBrowserCallCSharpMethod"示例应该包含具体的代码实现,你可以参考其结构和细节,根据自己的需求进行调整。记住...

    WinForm类似于QQ截取图片一个部分

    在Windows Forms(WinForm)应用开发中,有时候我们需要实现类似QQ那样的截图功能,允许用户选取屏幕上的任意区域并保存为图像。这个功能可以用于多种用途,比如制作教程、记录问题或者分享屏幕内容。本文将详细讲解...

    winform 自定义form皮肤

    在Windows Forms(WinForm)开发中,自定义Form皮肤是一个常见的需求,这可以让应用程序看起来更加专业和吸引用户。本文将深入探讨如何在C#中为WinForm应用创建自定义的Form皮肤,尤其适合初学者学习。 首先,我们...

    WinForm的2种活动页截屏打印方法

    这篇文章将深入探讨两种在WinForm中实现活动窗口截屏并进行打印的方法。首先,我们需要理解WinForm的基本概念,它是一个.NET Framework提供的用于构建桌面应用程序的用户界面框架。 1. **活动页截屏** 截屏是指...

    WinForm 中在窗口标题栏上加按钮.zip

    这个"WinForm 中在窗口标题栏上加按钮.zip"文件提供了一个示例,帮助开发者了解如何在WinForm应用程序的标题栏上添加按钮,并且特别强调了适配Windows 10操作系统。下面我们将详细讨论这一主题。 首先,Windows ...

    c# 图像旋转 winform 窗体 图片转动

    在WinForm应用中,我们通常会在Form的Paint事件处理程序中进行图像处理,这样每次窗体重绘时,都会执行我们的绘制逻辑。以下是一个简单的图像旋转示例: ```csharp private void form_Paint(object sender, ...

    如何在winform中设置使用opengl

    使用 OpenGL 在 Winform 中需要进行详细的初始化和设置,包括获取设备上下文、设置像素格式描述符、初始化 OpenGL 环境、设置显示模式和投影矩阵等。只有正确地进行这些设置,才能正确地使用 OpenGL 在 Winform 中。

    在winform中播放gif动画图片

    在Windows Forms(WinForm)应用程序中,我们常常需要展示动态效果,比如播放GIF动画图片。GIF是一种支持动画格式的图像文件,由于其体积小、兼容性好,常用于网页和桌面应用中的简单动画。在.NET Framework中,微软...

    winform实现遮罩层效果

    在Windows Forms(Winform)开发中,遮罩层(Mask Layer)通常被用来提供一种半透明的覆盖层,用于在用户界面(UI)上显示等待、加载或提示信息,同时阻止用户与背景界面进行交互。它是一种常见的用户体验设计元素,...

    C# Winform中使用SendMessage消息发送拦截

    在C# Winform应用开发中,`SendMessage`函数是一个非常重要的API调用,它允许我们向其他窗口发送消息。此技术常用于实现跨线程通信、控件操作以及消息拦截等高级功能。`WndProc`消息处理程序是Windows窗体(Winform...

    winform 任务栏消息提醒

    【winform 任务栏消息提醒】是一个基于C#开发的Windows桌面应用程序,它实现了类似MSN消息弹出的效果,能够在任务栏上创建一个醒目的通知窗口,以吸引用户的注意力。这个功能在许多应用中都很常见,比如邮件客户端、...

Global site tag (gtag.js) - Google Analytics