1. 新建一个对话框应用
2.向对话框添加一个树控件(Tree Control)
3. 设置属性 has buttons :true, Has lines: true, Lines at root: true, Edit labels : true
4.给树控件添加一个变量 m_tree
5.给树控件添加一个节点,次方法加入到OnInitDialog方法中
void CDWin11Dlg::InitTreeCtrl()
{
HTREEITEM level1 = m_tree.InsertItem(_T("上海市"),0,0);
HTREEITEM level21 = m_tree.InsertItem(_T("长宁区"),1,1,level1);
HTREEITEM level22 = m_tree.InsertItem(_T("武昌区"),1,1,level1);
m_tree.InsertItem(_T("江苏路"),2,2,level21);
m_tree.InsertItem(_T("延安路"),2,2,level21);
m_tree.InsertItem(_T("无疑路"),2,2,level21);
}
6.此时树就有数据并显示了,但是节点编辑时无法保存数据。 需要添加一个事件处理函数:(事件为TVN_ENDLABELEDIT)
void CDWin11Dlg::OnTvnEndlabeleditTree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTVDISPINFO pTVDispInfo = reinterpret_cast<LPNMTVDISPINFO>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
TV_DISPINFO* pTVDispinfo = (TV_DISPINFO*)pNMHDR;
m_tree.SetItemText(pTVDispinfo->item.hItem,pTVDispinfo->item.pszText);
}
结果如下:
初始:
修改后: