加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

vc树控件Tree Control 的简单使用

(2014-07-11 17:24:47)
标签:

节点

树控件

treecontrol

分类: 代码天地
vc树控件Tree <wbr>Control <wbr>的简单使用

一。在对话框上有 :
1。一个Tree Control,为其增加变量m_treeCtrl,和选择函数OnSelchangedTree1 。
2。一个 Edit Box ,用于输入树的节点名称。
3。四个Button,分别为增加,编辑,删除,和设置到一级以便再次增加一级节点。


二。主要代码如下:(略加修改网络代码)


int m_firstFlag=1;//设置为第一级
void CTreeCtrlDlg::OnBUTTONAdd() 
{
    CString strText;  
    GetDlgItemText(IDC_EDIT_Text, strText);  //用户的输入
    if(strText.GetLength() == 0)  
    {  
        AfxMessageBox(_T("请输入文本!"));  
        return ;  
    }  
    HTREEITEM hItem = m_treeCtrl.GetSelectedItem();//当前所选节点  
    //如果当前没有选中节点,或者设置为一级节点,则添加根节点  
    if(hItem== NULL  || m_firstFlag==1)  
    {  
        m_firstFlag=0;
        hItem = TVI_ROOT;  
    }  
     TVINSERTSTRUCT ts = {0}; //节点数据  
    ts.hParent = hItem;  //新节点的父节点 
    ts.hInsertAfter = TVI_LAST;  //加在同级节点最后  
    ts.item.pszText = (LPTSTR)(LPCTSTR)strText;  //新节点的文本 
    ts.item.mask = TVIF_TEXT;//让文本成员有效  
    HTREEITEM hNewItem = m_treeCtrl.InsertItem(&ts);  //添加新节点
    m_treeCtrl.SelectItem(hNewItem); //选中新节点 
    m_treeCtrl.EnsureVisible(hNewItem);//确保新节点在可视范围内   
}



void CTreeCtrlDlg::OnBUTTONDel() 
{
    HTREEITEM hItem = m_treeCtrl.GetSelectedItem(); //当前所选节点 
     if(hItem ==NULL)  
    {  
        AfxMessageBox(_T("请选择一个节点!"));  
        return ;  
    }  
    HTREEITEM hParent = m_treeCtrl.GetParentItem(hItem); //取得当前节点的父节点   
    m_treeCtrl.DeleteItem(hItem); //删除节点 
    m_treeCtrl.SelectItem(hParent);//选中其父节点
}

void CTreeCtrlDlg::OnBUTTONEdit() 
{
    HTREEITEM hItem = m_treeCtrl.GetSelectedItem(); //当前选中节点 
    if(hItem == NULL)  
    {  
        AfxMessageBox(_T("请选择一个节点!"));  
        return ;   
    }  
    CString strText;  
    GetDlgItemText(IDC_EDIT_Text , strText); //用户输入  
    if(strText.GetLength() == 0)  
    {  
        AfxMessageBox(_T("请输入文本!"));  
        return ;  
    }  
    m_treeCtrl.SetItemText(hItem,strText); //修改节点文本 
}

void CTreeCtrlDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
   NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;  
    HTREEITEM hItem = m_treeCtrl.GetSelectedItem();  //当前所选节点 
    if(hItem != NULL)  
    {  
        CString strText= m_treeCtrl.GetItemText(hItem);//获取节点文本  
        SetDlgItemText(IDC_EDIT_Text , strText); //显示在文本框中  
    }  
    *pResult = 0;  
}

void CTreeCtrlDlg::OnBUTTONfirst() 
{
   m_firstFlag=1;//设置为第一级,以便可以再次加入到一级
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有