1. 定义消息,在C#中消息需要定义成 Windows 系统中的原始的16进制数字,比如自定义消息
public const int USER = 0x0400;
2. 发送消息,消息发送是通过 Windows 提供的 API 函数 SendMessage 来实现的,它的原型定义:
[DllImport(User32.dll,EntryPoint=SendMessage)]
private static extern int SendMessage
(
IntPtr hWnd, // handle to destination window
uint Msg, // message
uint wParam, // first message parameter
uint lParam // second message parameter
);
3. 消息接收,消息发出之后,在Form中如何接收呢?我们可以重载DefWinproc函数来接收消息。
protected override void DefWndProc ( ref System.Windows.Forms.Message m )
{
switch(m.Msg)
{
case Message.WM_TEST: //处理消息
break;
default:
base.DefWndProc(ref m);//调用基类函数处理非自定义消息。
break;
}
} |