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;//设置为第一级,以便可以再次加入到一级
}