public const int WM_USER = 0x400;
public const int WM_MYBUTTONCLICK = WM_USER + 100;
[DllImport("user32", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
PRotected override void WndProc(ref Message m)
{
if (m.Msg == WM_MYBUTTONCLICK)
{
MessageBox.Show("MyButton Click");
}
else
{
base.WndProc(ref m);
}
}
private void button1_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_MYBUTTONCLICK, 0, 0);
}
在上面的例子中定义一个鼠标消息,当鼠标移动到一个对象时触发这个消息!
系统消息定义从0到0x3FF,可以使用0x400到0x7FFF定义自己的消息。Windows把0x400定义为WM_USER。如果定义自已的一个消息,可以在WM_USER上加一个值。
新闻热点
疑难解答