现在我想实现这样的效果!
1。当树型控件展开时,如果我点上一级的节点,则下级的所有节点就都又变成非展开状态。
2。如果只得到最后一级的节点的名称。别的节点的名称都不需要

解决方案 »

  1.   

    CTreeCtrl   m_Tree=GetTreeCtrl();   
      这样就可以用m_Tree来进行操作了。可以进行建树,查找等工作.
      

  2.   

    1) 你建立的对话框定义一个类   如:CDialogBar:CMyBar;   
      2) 另外建立一个由CTreeCtrl派生的类,如CTreeCtrl::CMyTree;   
      3) 在CMyBar中添加一个变量m_tree,这个变量是CMyTree类的对象,   
      声明如下:   
      CMyTree     m_tree,///这要求包含CMyBar的声明.h   文件   
      4) 在CMyTree类中添加双击事件的响应函数,可以在classWizzard中   
      5) 在CMyBar类中设置树控件的放置位置.   
      比如在OnCreate()事件中:代码如下:   
        
      CMyBar::OnCreate(LPCREATESTRUCT   lpCreateStruct)     
      {   
      if   (CDialogBar::OnCreate(lpCreateStruct)   ==   -1)   
      return   -1;   
      CRect   rect;     
      GetClientRect(&rect);     
      rect.left   +=   8;///这个数据是随便写的,你可以调整   
      rect.top   +=   15;   
      rect.right   -=   8;   
      rect.bottom   -=   8;   
      m_tree   =   new   CMyTree;   ///需要在类声明的.H文件中声明CMyTree   *m_tree;   
      if   (!m_tree   ->Create(WS_CHILD   |   WS_VISIBLE   ,///控件的风格你需要查阅///MSDN,但WS_CHILD是不能少的,   
      rect,   this,   IDC_LISTBOX))   ////   IDC_LISTBOX需要你在声明中用   
      ///#define定义一个不要重复的控件的ID   
      {   
      TRACE0("Failed   to   create   view   for   CMyBarLeft\n");   
      return   -1;   
      }
      

  3.   

    第二个问题,大体你可以用这样的方式,判断是否有child。
    HTREEITEV m_hid=*.GetSelectedItem();
    if(!*.GetChildItem(m_hid))
    {
    做其它事情
    }