0006-MFC--Tree控件的编辑

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);
}


结果如下:

初始:

0006-MFC--Tree控件的编辑_第1张图片

修改后:

0006-MFC--Tree控件的编辑_第2张图片


你可能感兴趣的:(tree)