在C#中目前我还没有找到发送消息的类成员函数,所以只能采用通过调用WIN 32 API 的 SendMessage() 函数实现。由于 SendMessage的参数中需要得到窗体的句柄(handler) ,所以又要调用另一个API FindWindow(), 两者配合使用,达到在不同窗体之间的消息发送和接收功能。
另外一个要点是,需要通过重写(Override) 窗体的 DefWndProc() 过程来接收自定义的消息。DefWndProc 的重写:
protected override void DefWndProc(ref System.Windows.Forms.Message m)
{
Switch(m.Msg)
{
case ...:
break;
default:
base.DefWndProc(ref m);
break;
}
}
下面是我的C#实践例程。