树控件

首先对树控件进行属性设置


对添加按钮进行编程

void Cdemo10Dlg::OnBnClickedBtnAdd()
{
	// TODO: 在此添加控件通知处理程序代码
	CString strText;
	GetDlgItemText(IDC_EDIT,strText);
	if(strText.GetLength()==0)
	{
		AfxMessageBox(_T("请输入文本"));
		return;
	}
	HTREEITEM hItem=m_tree.GetSelectedItem();  //获得当前树中被选中的结点
	if(hItem==NULL)        //如果没有选中的,则hItem作为根节点
	{
		hItem=TVI_ROOT;
	}
	TVINSERTSTRUCT ts={0};    //用这个结构来保存节点的数据
	ts.hParent=hItem;      //hItem作为ts的父节点
	ts.hInsertAfter=TVI_LAST;   //指定插入到最后
	ts.item.pszText=strText.GetBuffer();   //结点的文字就是文本框里的,后面的是类型转换
	ts.item.mask=TVIF_TEXT;      //设置掩码让文本成员有效
	HTREEITEM hNewItem=m_tree.InsertItem(&ts);  //将节点插入,得到新的句柄
	m_tree.SelectItem(hNewItem);     //将新的节点选中
	m_tree.EnsureVisible(hNewItem);   //保证新插入的节点可见



}
删除按钮

void Cdemo10Dlg::OnBnClickedBtnDelect()
{
	// TODO: 在此添加控件通知处理程序代码
	HTREEITEM hItem=m_tree.GetSelectedItem();  //获得当前树中被选中的结点
	if(hItem==NULL)     
	{
		AfxMessageBox(_T("请选择一个节点"));
		return;
	}
	HTREEITEM hParent=m_tree.GetParentItem(hItem);  //获得父节点
	m_tree.DeleteItem(hItem); 
	m_tree.SelectItem(hParent);  //让父节点变成被选中的状态

}

修改按钮:

void Cdemo10Dlg::OnBnClickedBtnMod()
{
	// TODO: 在此添加控件通知处理程序代码
	HTREEITEM hItem=m_tree.GetSelectedItem();  //获得当前树中被选中的结点
	if(hItem==NULL)     
	{
		AfxMessageBox(_T("请选择一个节点"));
		return;
	}
	CString strText;
	GetDlgItemText(IDC_EDIT,strText);
	if(strText.GetLength()==0)
	{
		AfxMessageBox(_T("请输入文本"));
		return;
	}
	m_tree.SetItemText(hItem,strText);
}
还想实现一个功能,就是当选中某个节点的时候,在编辑框里显示该节点的文字。对树控件选择控件事件

编程

void Cdemo10Dlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	HTREEITEM hItem=m_tree.GetSelectedItem();  //获得当前树中被选中的结点
	if(hItem!=NULL) 
	{
		CString strText=m_tree.GetItemText(hItem);
		SetDlgItemText(IDC_EDIT,strText);
	}
	*pResult = 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值