想定义一个CTreeCtrL &m_Tree 变量跟CTreeView 相关连。在构造函数
CTreeView::CTreeView():m_Tree(GetTreeCtrl())
{
 }
之后对 m_Tree  操作,总汇出错。请问为什么?

解决方案 »

  1.   

    乖乖的用this->GetTreeCtrl()吧!好像不能赋值使用!
      

  2.   

    在构造函数中,树控件还没有创建,所以要出错,可以在OnCreate中对变量进行赋值
      

  3.   

    GetTreeCtrl()要等到TreeCtrl构造好了才能用吧
    不然返回NULL阿
      

  4.   

    这个View是继承的CTreeView吧,所以你根本不需要创建什么树控件,你可以通过GetTreeCtrl()直接在上面添加树的节点和进行控制。如果是继承的CView类,当然要先在oncreate中先创建一个树控件了。
      

  5.   

    当然可以用!!!因为GetTreeCtrl()返回的是引用,可以声明一个引用
    但必须马上赋值,应为引用声明后必须赋初值,下面这样可以的
    CTreeCtrl &m_Tree = GetTreeCtrl();但你直接用GetTreeCtrl()更方便。注意:该引用不能声明为成员变量,因为不可能赋初值,只能在一个函数里面使用
    但你可以声明指针为成员变量:CTreeCtrl *m_pTree; m_pTree = &GetTreeCtrl();
    ---------
      ++C++
    ---------
      

  6.   

    如果你的CTreeCtrl派生类没有数据成员和虚函数,那么可以直接把CTreeView指针强制转换成你的CTreeCtrl派生类指针然后使用,否则不能作这样的转换。Command what is yours
    Conquer what is not
      

  7.   

    上面的各位
    CTreeCtrl& m_Tree;
    CTreeView::CTreeView():m_Tree(GetTreeCtrl())
    这个很正确的用法,有什么错?