查了下MSDN。两个都是子控件向父窗口 发送消息。
如果点击一个按钮。两个消息都会发送吗?这个有没有什么明显的差别?

解决方案 »

  1.   

    点击按钮的话,发的是WM_COMMAND消息
      

  2.   

    可以说WM_NOTIFY携带的信息量更多~
      

  3.   

    但是 有时候就发送 WM_NOTIFY消息啊。
      

  4.   

    http://blog.csdn.net/wishfly/article/details/7487097
    http://blog.csdn.net/hnhyhongmingjiang/article/details/2129114
      

  5.   

    借问一下:
    1、是不是这样,操作系统把鼠标、键盘消息分发给相应的控件,控件A把消息发送给父窗口B,父窗口B就是MFC中有BEGIN_MESSAGE_MAP END_MESSAGE_MAP()的类?如果父窗口B就是没有BEGIN_MESSAGE_MAP END_MESSAGE_MAP(),就继续转移发送给更上层的父窗口c、父窗口d....   ?2、有时遇到REFLECT,听说是父窗口B把某些消息返回给控件A,此时是否 控件A一定有自己的BEGIN_MESSAGE_MAP END_MESSAGE_MAP()? 
      

  6.   

    WM_COMMAND 是早期版本的 Windows 使用,其 wParam 只能携带一个通知代码和控件句柄,各占 16 位,无法传递更多信息,且由于控件数量和功能越来越多,WM_COMMAND 消息的参数已经不能满足要求,因此微软增加了 WM_NOTIFY。此消息的 lParam 通常是指向 NMHDR 结构体的指针,根据通知消息的不同,还有可能是更复杂的结构体指针。
      

  7.   

    通常 WM_COMMAND 发送快捷键、菜单、按钮、编辑框、组合框、列表框等事件,而像树形视图、列表视图、分割按钮、标签控件、工具栏等都是通过 WM_NOTIFY 发送的。虽然按钮和分割按钮属于同一个类,但是微软却不再使用 WM_COMMAND。对于同一种控件的同一个通知,只能收到一次。