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上加一個值。
新聞熱點
疑難解答