与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);
        }
}

简单的消息传递


本文转载:CSDN博客