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应用程序中捕获特定消息的方法:重载Form的DefWndProc方法和实现IMessageFilter接口。这两种方法均可用于监听如鼠标点击等低级别事件。

2647

被折叠的 条评论
为什么被折叠?



