C#拦截系统消息的方法-Application.AddMessageFilter

C#拦截系统消息的方法Application.AddMessageFilter Application.AddMessageFilter这个方法可以接收系统发出的消息: 首先定义一个类,继承IMessageFilter接口代码如下:

internal class MyMessager : IMessageFilter

{

//截取消息,进行处理

public bool PreFilterMessage(ref System.Windows.Forms.Message m)

{

switch (m.Msg)

{

case 513:        //拦截左键单击事件 

MessageBox.Show("左键被拦截!");

return true; 

case 516:        //拦截左键单击事件 

MessageBox.Show("右键被拦截!");

return true;    

default:

return false;    //返回false则消息未被裁取,系统会处理

}

}

}

然后在窗体load事件中加入Application.AddMessageFilter方法

private void Form1_Load(object sender, EventArgs e)

{

Application.AddMessageFilter(new MyMessager());

}

原文地址:https://www.cnblogs.com/milantgh/p/4007286.html