protected override void DefWndProc(ref Message m)
{
....
base.DefWndProc(m);
}
protected override void WndProc(ref Message m);
{
.....
base.WndProc(m);
}
public class MessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message msg)
{
//识别消息并处理
//return true;//吞掉消息,不派发
return false;//进入下一步派发到对应窗口过程
}
}
//在应用程序消息循环中加入消息过滤器
MessageFilter f = new MessageFilter(this.lbMsg);
Application.AddMessageFilter(f);
[StructLayout(LayoutKind.Sequential), SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
public struct Message
{
private IntPtr hWnd;
private int msg;
private IntPtr wparam;
private IntPtr lparam;
private IntPtr result;
public IntPtr HWnd { get; set; }
public int Msg { get; set; }
public IntPtr WParam { get; set; }
public IntPtr LParam { get; set; }
public IntPtr Result { get; set; }
public object GetLParam(Type cls);
public static Message Create(IntPtr hWnd, int msg, IntPtr wparam, IntPtr lparam);
public override bool Equals(object o);
public static bool operator !=(Message a, Message b);
public static bool operator ==(Message a, Message b);
public override int GetHashCode();
public override string ToString();
}
//Declaring Type: System.Windows.Forms.Control //Assembly: System.Windows.Forms, Version=2.0.0.0 public static Control FromHandle(IntPtr handle);通过这种方式可以监测各消息的信息来自哪个控件。
public bool PreFilterMessage(ref Message msg)
{
Control c = Control.FromHandle(msg.HWnd);
if (c == null)
System.Diagnostics.Debug.WriteLine("Filter:NULL" +"-" + msg.ToString());
else
System.Diagnostics.Debug.WriteLine("Filter:" +c.Name+"-"+ msg.ToString());
return false;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有