我的MFC程序中使用CListctrl和CTreectrl实现像资源管理器类似的东东,想在CListctrl中拖放,在CTreectrl中接受,我看了一下,CTreectrl和CListctrl中好像没有鼠标移动消息的处理啊,请问各位,有没有什么好方法,是不是要建立一个CTreectrl和CListctrl的子类,重载鼠标移动的信息?谢谢了,最好给出代码看看

解决方案 »

  1.   

    LVN_BEGINDRAG
    TVN_BEGINDRAGCOleDropTarget
    COleDropSourceOnDragEnter
    OnDragOver
    OnDragLeave
      

  2.   

    楼上说的是关于ole方面的东东。建议楼主先看看这方面的资料
      

  3.   

    用的着OLE吗?我觉的好像用不着吧
      

  4.   

    还有个问题啊,就是我的拖动之后得到的图标怎么是黑色的阿?
    具体的代码是这样的,m_pDragImage是CImageList*的。
    在BeginDrag中这样的:
             m_pDragImage=CreateDragImage(m_nDragIndex,&pt); m_pDragImage->BeginDrag(0,CPoint (8, 8));
    pt = ((NM_LISTVIEW *)pNMHDR)->ptAction;
    //ClientToScreen( &pt );
    m_pDragImage->DragEnter(NULL,pt); 
    得到的拖动的图标怎么是一个图标外加黑色的框框?
      

  5.   

    http://www.codeproject.com/listctrl/filedroplistctrl.asp
    Enhanced CListCtrl that accepts and filters dropped files and folders
    你可以参考一下,他没有说如果在连个控件中拖放,它在同一个控件中拖放