MFC入门示例之树控件(CTreeControl)

Posted runtimeexception

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC入门示例之树控件(CTreeControl)相关的知识,希望对你有一定的参考价值。

技术分享图片

 1 //增加按钮
 2 void CMFCApplication8Dlg::OnBnClickedButtonAdd()
 3 {
 4     //树中添加节点
 5     CString strText;
 6     GetDlgItemText(IDC_EDIT1, strText);
 7     if (strText.GetLength() == 0) {
 8         AfxMessageBox(TEXT("请输入文本"));
 9         return;
10     }
11     HTREEITEM hItem = m_tree.GetSelectedItem();//获取当前被选中的节点
12     if (hItem == NULL) 
13         hItem = TVI_ROOT;
14     
15     TVINSERTSTRUCT ts = { 0 };
16     ts.hParent = hItem;
17     ts.hInsertAfter = TVI_LAST;
18     ts.item.pszText = strText.GetBuffer();
19     ts.item.mask = TVIF_TEXT;
20     HTREEITEM hNewItem = m_tree.InsertItem(&ts);
21     m_tree.SelectItem(hNewItem);        //选中新加入的节点
22     m_tree.EnsureVisible(hNewItem);        //树太高看不见问题
23 }
24 
25 //删除按钮
26 void CMFCApplication8Dlg::OnBnClickedButtonDel()
27 {
28     //获取当前被选中的节点
29     HTREEITEM hItem = m_tree.GetSelectedItem();//获取当前被选中的节点
30     if (hItem == NULL) {
31         AfxMessageBox(TEXT("请选择一个节点"));
32         return;
33     }
34     HTREEITEM hParent = m_tree.GetParentItem(hItem);
35     m_tree.DeleteItem(hItem);
36     m_tree.SelectItem(hParent);
37 }
38 
39 //修改按钮
40 void CMFCApplication8Dlg::OnBnClickedButtonUpdate()
41 {
42     //获取当前被选中的节点
43     HTREEITEM hItem = m_tree.GetSelectedItem();//获取当前被选中的节点
44     if (hItem == NULL) {
45         AfxMessageBox(TEXT("请选择一个节点"));
46         return;
47     }
48     CString strText;
49     GetDlgItemText(IDC_EDIT1, strText);
50     if (strText.GetLength() == 0) {
51         AfxMessageBox(TEXT("请输入文本"));
52         return;
53     }
54     m_tree.SetItemText(hItem, strText);
55 }
56 
57 //选中新节点事件
58 void CMFCApplication8Dlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
59 {
60     LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
61     //获取当前被选中的节点
62     HTREEITEM hItem = m_tree.GetSelectedItem();//获取当前被选中的节点
63     if (hItem != NULL) {
64         CString strText = m_tree.GetItemText(hItem);
65         SetDlgItemText(IDC_EDIT1, strText);        //选中节点文本添加到编辑框中
66     }
67 
68     *pResult = 0;
69 }

 

以上是关于MFC入门示例之树控件(CTreeControl)的主要内容,如果未能解决你的问题,请参考以下文章

转VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)

(转载)VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

MFC编程入门之二十六(常用控件:滚动条控件ScrollBar)

VS2010/MFC编程入门之二十(常用控件:静态文本框)

(转载)VS2010/MFC编程入门之二十二(常用控件:按钮控件ButtonRadio Button和Check Box)

VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)