我在CView中创建了一个CListCtrl,如果CListCtrl没有获得焦点的话,就不相应 NM_CLICK 消息,是不是 NM_CLICK 消息只有在已经获得焦点的前提下才起作用?而 WM_LBUTTONDOWN 和 WM_LBUTTONUP 就没有这种限制?我这样理解对不对?哪位老大给讲一下吧,谢谢了

解决方案 »

  1.   

    我在CListCtrl中按下鼠标,再抬起,居然收不到 WM_LBUTTONUP 消息
    必须在外面按下鼠标,然后在 CListCtrl 中抬起,CListCtrl 才能收到 WM_LBUTTONUP消息这是怎么回事啊 …… 疯了!
      

  2.   

    控件一般是
    WM_CLICK 不响音 WM_LBUTTONDOWN消息
    而普通的窗口只是相应
    WM_LBUTTONDOWN
      

  3.   

    如果CListCtrl没有获得焦点的话,就不相应 NM_CLICK 消息,这是肯定的,因为NM_CLICK 消息是这个控件的消息,CListCtrl没有获得焦点。当然不能响应这个消息了。
    控件一般是WM_CLICK,这是因为对控件的消息与普通的WM_LBUTTONDOWN,系统的处理是不一样的。
    你可以在View中响应WM_LBUTTONDOWN,在CListCtrl中响应WM_CLICK
      

  4.   

    我刚才做试验:如果我在点击的过程中鼠标有移动的话,就能响应到NM_CLICK
    如果不移动,就不能正确响应,这是为什么呢?还有,对话框中的 CListCtrl 即使没有获得焦点,也是可以响应 NM_CLICK 的
    没有获得焦点就不能响应 NM_CLICK 的说法,是不是有点“想当然”了?