树控件

来源:互联网 发布:python 量化论坛 编辑:程序博客网 时间:2024/06/08 12:25

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


对添加按钮进行编程

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




0 0