A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

.在.net中如何用户自定义消息,并在窗体中处理这些消息?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

正序浏览
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;
              } 
      }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马