黑马程序员技术交流社区

标题: .在.net中如何用户自定义消息,并在窗体中处理这些消息? [打印本页]

作者: 资建文    时间: 2012-8-21 23:42
标题: .在.net中如何用户自定义消息,并在窗体中处理这些消息?
.在.net中如何用户自定义消息,并在窗体中处理这些消息?
作者: 许庭洲    时间: 2012-8-22 08:58
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;
              } 
      }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2