我有一个CXTreeCtrl是CTreeCtrl的子类,实现drap&drop的。
我的程序中有一个FormView派生的子类,其中包含了一个 CXTreeCtrl *pXTree;
初始化pXTree,用GetDlgItem();
但我试图拖动节点时,发现根本不能响应消息。我怀疑是TreeCtrl初始化的缘故:
因为:
我另外做了一个基于Diaglog的简单程序,包含了一个TreeCtrl控件。
如果用CXTreeCtrl *pXTree; 以GetDlgItem()初始化,不能响应消息。( 比如:OnMouseMove() )
但是,如果加成员变量 CXTreeCtrl Tree; 用DDX_Control()关联,这样做是可以响应消息的。问题在于:
在FormView中我也试图加 CXTreeCtrl Tree; 用DDX_Control()关联,
但使用Tree时就出现 Debug Assert Fail.
用指针没有出错,却不能响应消息。我这个程序TreeCtrl必须加在FormView。怎么做才能响应消息呢?谢谢!

解决方案 »

  1.   

    给你个链接
    http://www.vckbase.net/code/winui/tree/dragtree.zip看了这个就会了
      

  2.   

    可以直接在上面拖个树控件,关联一个CTreeCtrl,然后手动把CTreeCtrl都改为CXTreeCtrl
      

  3.   

    laiyiling(陌生人·钻研MS技术) :谢谢~我就是按你说的那么做的。问题是:关联的时候会出现错误,不知道什么原因。(拖到formview中的时候)
      

  4.   

    什么错误?debug错误你可以用F11跟进去看看
      

  5.   

    同一个ID的控件关联两次会有ASSERT的……
    检查你的DDX函数
      

  6.   

    我只在
    包含treectrl的FormView中:DoDataExchange(...)里面
    加了一句:DDX_Control(...)别的地方没有用过。
      

  7.   

    加了一句:DDX_Control(...) 去掉!
      

  8.   


    去掉的话CTreeCtrl变量 和 FormView里面的TreeCtrl控件 怎么关联起来呢?回复人: arvid_gs(west) ( ) 信誉:130  2004-12-22 13:29:00  得分: 0  
     
     
       加了一句:DDX_Control(...) 去掉!  
     
      

  9.   

    应该为formview添加消息响应函数。
    这样就可以实现目的。