实现效果:
知识运用:
通过在From中重写Control类的虚方法 WndProc 来获取信息
protected virtual void WndProc(ref Message m) Message结构的属性
通过实现IMessageFilter接口来创建消息筛选器 从而截取Windows消息
实现代码:
private void Form1_Load(object sender, EventArgs e) //窗体加载消息筛选器 { Application.AddMessageFilter(mf); //添加消息筛选器 向目标传递Windows消息时监视这些消息 } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Application.RemoveMessageFilter(mf); //从应用程序的消息泵中移除一个消息筛选器 } //方法一:重写WndProc虚方法 与二不可共存 //protected override void WndProc(ref Message m) //{ // switch (m.Msg) // { // case 513: // MessageBox.Show("单机了鼠标左键", "系统信息"); // m.Result = (IntPtr)0; //为了响应消息处理而向Windows返回的值 // break; // case 516: // MessageBox.Show("单机了鼠标右键", "系统信息"); // m.Result = (IntPtr)0; // break; // default: // base.WndProc(ref m); // break; // } //} } //方法二: 实现IMessageFilter接口 从而获取Windows消息 public class MessageFilter : IMessageFilter { public bool PreFilterMessage(ref Message message) { switch (message.Msg) { case 513: MessageBox.Show("单机了鼠标左键", "系统信息"); return true; case 516: MessageBox.Show("单机了鼠标右键", "系统信息"); return true; default: return false; } } }