请问如何修改树控件的信息
比如:
=============
 aaaa
bbbb
ccc
ddd=============
这是树控件的显示的四行,我想把第二行变成ffff
修改后为
===========
aaaa
ffff
ccc
ddd
===========
请问怎么修改 好像是要
1 先选中第二行
2 然后删除 DeleteItem()
3 然后 在第二行添加把 InsertItem()
 
应该是这个思路把  具体怎么实现呢?InsertItem()
我搞不清楚这个函数,我看别人写 InsertItem(xxx,0,1);
也不知道什么意思 ,谢谢

解决方案 »

  1.   

    HTREEITEM InsertItem(
       LPCTSTR lpszItem,
       HTREEITEM hParent = TVI_ROOT,//这个你也明白了吧
       HTREEITEM hInsertAfter = TVI_LAST//填入 aaaa的树节点
    );
      

  2.   

    具体代码我试这样写的
    HTREEITEM hItem = m_tree.GetSeletedItem();
    m_tree.DeleteItem(hItem);
    m_tree.InsertItem(ffff,0,hItem);
    是这样写吗?
    但是写完以后 ,ffff跑到最后一行了把 而不是第二行
      

  3.   

    CTreeCtrl::SetItemText
    BOOL SetItemText( HTREEITEM hItem, LPCTSTR lpszItem );
      

  4.   

    1》CTreeCtrl::GetItemText
    2》CTreeCtrl::SetItemText
    先从根起,进入第一级子节点,搜索“bbbb”(gettext,与bbbb比较)如果找到用settext改名
      

  5.   

    例子:
    //
    extern CTreeCtrl LeftTree;
    BOOL ChangeItemName(char *oldName,char *newName)
    {
    HTREEITEM hRoot=LeftTree.GetRootItem();
    // if root not expanded
    if(TVIS_EXPANDED!=LeftTree.GetItemState(hRoot,TVIF_STATE))
    { // expand
    LeftTree.Expand(hRoot,TVE_EXPAND);
    }
    // find which one 
    TVITEM tvi;
    tvi.mask=TVIF_TEXT|TVIF_HANDLE;  
    char tviname[MAX_PATH];
    HTREEITEM hChildItem=LeftTree.GetChildItem(hRoot);
        while (hChildItem)
    {
    tvi.hItem=hChildItem;
    strcpy(tviname,LeftTree.GetItemText(tvi.hItem));
    //AfxMessageBox(tviname);
    if (stricmp(tviname,oldName)==0)// found

    LeftTree.SetItemText(tvi.hItem,newName);
    return TRUE;
    }
    // get new child
    hChildItem=LeftTree.GetNextSiblingItem(tvi.hItem);

    return FALSE;
    }只搜索第一级子节点