msdn上面说:
When a WM_NOTIFY message is sent, the control is offered the first chance to handle it. If any other reflected message is sent, the parent window has the first chance to handle it and the control will receive the reflected message.这句话怎么理解?

解决方案 »

  1.   

    如发送了一个WM_NOTIFY消息,控件将获得第一个处理它的机会。如果发送了一个其他映射的消息,父窗口(如对话框窗口)将获得第一个处理它的机会,然后控件才收到映射的消息。
      

  2.   

    当一个WM_NOTIFY消息被发送后,控件就得到了第一次的机会来处理它。如果任何其他的被反射消息被发送,父窗口会有第一个机会来处理之,而控件将能接收被反射的消息。
      

  3.   

    Message reflection lets you handle messages for a control, such as WM_CTLCOLOR, WM_COMMAND, and WM_NOTIFY, within the control itself.
      

  4.   


    为什么说消息反射是MFC的机制而winapi没有,如果winapi没有这个机制的话,MFC作为一种包装,如何才能凭空的产生这样一个机制呢?
      

  5.   

    以WM_NOTIFY为例 由OnNotify处理他,在OnNotify中 if (ReflectLastMsg(hWndCtrl, pResult))
    return TRUE;        // eaten by child AFX_NOTIFY notify;
    notify.pResult = pResult;
    notify.pNMHDR = pNMHDR;
    return OnCmdMsg((UINT)nID, MAKELONG(nCode, WM_NOTIFY), &notify, NULL);ReflectLastMsg将消息先发送反射消息控件处理,若控件处理了,那么后面就是return TRUE了,否则往下执行OnCmdMsg交给父窗口...一切都是代码实现的而已
      

  6.   

    写错了一句,应该是 ReflectLastMsg先发送反射消息控件处理