与MFC类似,通过SendMessage和窗口句柄实现消息之间的传递
当然,这东西可以在线程和进程间通讯,实现线程消息的互相传递,文件系统升级卸载等功能
作用空间
using System.Runtime.InteropServices; // 导入user32.dll用到
主窗体
public partial class Form1 : Form
{
[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int Msg, int wParam, int lParam);
// 定义自定义消息名称
private const int WM_USER = 0x0400;
public static int MY_MSG_TEST = WM_USER + 0x0100;
// 重载WndProc函数,接收消息
protected override void WndProc(ref Message m)
{
if (m.Msg == MY_MSG_TEST)
{
MessageBox.Show("789");
}
else
{
}
base.WndProc(ref m);
}
// 定义按钮发消息
private void button1_Click(object sender, EventArgs e)
{
SendMessage(this.Handle.ToInt32(), MY_MSG_TEST,0,0);
}
}
简单的消息传递