请问如何修改树控件的信息
比如:
=============
aaaa
bbbb
ccc
ddd=============
这是树控件的显示的四行,我想把第二行变成ffff
修改后为
===========
aaaa
ffff
ccc
ddd
===========
请问怎么修改 好像是要
1 先选中第二行
2 然后删除 DeleteItem()
3 然后 在第二行添加把 InsertItem()
应该是这个思路把 具体怎么实现呢?InsertItem()
我搞不清楚这个函数,我看别人写 InsertItem(xxx,0,1);
也不知道什么意思 ,谢谢
比如:
=============
aaaa
bbbb
ccc
ddd=============
这是树控件的显示的四行,我想把第二行变成ffff
修改后为
===========
aaaa
ffff
ccc
ddd
===========
请问怎么修改 好像是要
1 先选中第二行
2 然后删除 DeleteItem()
3 然后 在第二行添加把 InsertItem()
应该是这个思路把 具体怎么实现呢?InsertItem()
我搞不清楚这个函数,我看别人写 InsertItem(xxx,0,1);
也不知道什么意思 ,谢谢
LPCTSTR lpszItem,
HTREEITEM hParent = TVI_ROOT,//这个你也明白了吧
HTREEITEM hInsertAfter = TVI_LAST//填入 aaaa的树节点
);
HTREEITEM hItem = m_tree.GetSeletedItem();
m_tree.DeleteItem(hItem);
m_tree.InsertItem(ffff,0,hItem);
是这样写吗?
但是写完以后 ,ffff跑到最后一行了把 而不是第二行
BOOL SetItemText( HTREEITEM hItem, LPCTSTR lpszItem );
2》CTreeCtrl::SetItemText
先从根起,进入第一级子节点,搜索“bbbb”(gettext,与bbbb比较)如果找到用settext改名
//
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;
}只搜索第一级子节点