消息是事件前源,不在同一平面上有了消息才会引发事件,比如mouse click 某个对象这个消息得到之后才有mouse_click 事件

解决方案 »

  1.   

    有道理,请问如下发送消息定义方式:
      [DllImport("User32.dll",EntryPoint="SendMessage")]
          private static extern int SendMessage(
                       int hWnd,      // handle to destination window
                       int Msg,       // message
                       int wParam,  // first message parameter
                       int lParam // second message parameter
           );
    与事件处理过程
    public delegate void MYShow(); 
    public event MYShow ShowME;
    this.ShowME+=new MYShow(this.ShowMeName);
    public void ShowMeName()
    {...}
    有联系吗?
      

  2.   

    还是一样,消息在事件之前,二者是 受和被 依赖关系SendMessage 是向某个对象发送一个消息,也可以是事件消息this.ShowME+=new MYShow(this.ShowMeName); 是一个委托,是当它showme 时执行委托void ShowMeName,它的前提是this 会有show 事件才会激动发委托举个例子,当SendMessage 向 this 对象发送一个showme 消息,就会引发this.showme 事件,如果没有这个消息 this.showme 永远不会执行比如 this.show() 这是方法,此方法其实也可以理解为show 消息,没有消息或者消息被拦截,那么永远不会有事件发生。
      

  3.   

    当然前提是win 平台的消息机制,其它的某些比如time.timer 之类的是不在消息机制之列
      

  4.   

    消息主动的.事件是被动的
    coder可以发送消息->激发事件
    hope it helps
      

  5.   

    to:ArLi2003(阿利 风雨中的无爪飞龙),明白了,事件通过消息来触发。事件this.ShowMe+=...必须在获得this.ShowMe消息后才能被触发。不知道我理解得对不对,^_^。
        现在想找一个发送消息的例子来练练手,不知道你有没有?
      

  6.   

    简单呀,
    写个类,检查文件是否存在,如果不存在(消息)引发事件NoFound
      

  7.   

    想找个用如下形式发消息的源码看看,刚才表达有误。
    [DllImport("User32.dll",EntryPoint="SendMessage")]
          private static extern int SendMessage(
                       int hWnd,      // handle to destination window
                       int Msg,       // message
                       int wParam,  // first message parameter
                       int lParam // second message parameter
           );
      

  8.   

    >现在想找一个发送消息的例子来练练手,不知道你有没有?建一个form,然后在:Form1_Closed(){
     messagebox.show("ok");
    }启动它,点击窗体右上的X关闭它,出现ok对话框,完成这不就是例子吗?你点击了X就是系统(GDI)给form 发了个WM_SYSCOMMAND消息,内容是关闭窗体,由此引发了Form1_Closed 事件,出现了ok 对话框...呵呵,在win平台,我们每天每时每刻都在和消息打交道