在一个CView父窗口中放了一个ListCtrl控件,我想当鼠标在ListCtrl中移动或是鼠标左键被弹起时得到消息并进行一些处理,但是ListCtrl没有找到类似消息响应函数(不能用Click,我要的是之前鼠标是一直按住的,当鼠标弹起时再响应处理,而Click不行,我试过),后想利用父窗口的MOUSEMOVE消息来响应,但是鼠标在ListCtrl中时父窗口得不到这个消息.......不知道哪位大哥能帮帮忙呀......小弟在此感激不尽!!!

解决方案 »

  1.   

    记得有这个消息选
    实在不行就重载CListCtrl类
      

  2.   

    如何响应OnMouseMove和OnLButtonUp呀,ListCtrl里没有的选呀.....
      

  3.   

    在ClassView中选中你那个ListCtrl,选New Class,重载它,然后在子类里响应你要的消息,最后记得他你那个ListCtrl设成你重载的类的对像.
    当然也可以直接New Class,然后把父类设成CListCtrl
      

  4.   

    子类化,可以用SetWindowLong来替换窗口函数.例子,对话框工程,m_list为CListCtrl.WNDPROC oldWndProc = NULL; //定义为全局,比较方便.
    LRESULT CALLBACK newWndProc(HWND hwnd,UINT nMsg,WPARAM wParam,LPARAM lParam)
    {
    switch(nMsg)
    {
     //在这里处理你感兴趣的消息
    }
    return CallWindowProc(oldWndProc,hwnd,nMsg,wParam,lParam);
    }在对话框的初始化函数里面
    OnInitDialog()
    {
    ......
    oldWndProc = (WNDPROC)SetWindowLong(m_list.GetSafeHwnd(),GWL_WNDPROC,(LONG)newWndProc);
    ......
    }这样便替换了LIST CTRL 的窗口函数,也称为子类化吧.
      

  5.   

    十分感谢各位大哥,使小弟初步有了解决办法,  celftj(超级菜鸟)  方法可行也简单些, abuseyoudna1981() 方法也不错,我会好好研究一下:)
    再次谢谢各位........希望结果能行:)