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)的更多相关文章

  1. MFC之树控件

    树控件对应的类: CTreeControl 树控件属性设置: 启用复选框:Check Boxes = True 父节点显示+-按钮:Has Button = True ; Lines At Roots ...

  2. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  3. JS组件系列——Bootstrap 树控件使用经验分享

    前言:很多时候我们在项目中需要用到树,有些树仅仅是展示层级关系,有些树是为了展示和编辑层级关系,还有些树是为了选中项然后其他地方调用选中项.不管怎么样,树控件都是很多项目里面不可或缺的组件之一.今天, ...

  4. WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 菜单M ...

  5. jasonTree多选多级树控件

    jasonTree1.0 jasonTree多选多级树控件(名字是自己取),用于友好的展示树形结构的数据,并可以多选,传统的做法是在一个select的下拉框中显示一个可折叠的树结构,公司的需求人员这种 ...

  6. wxPython树控件

    1.树控件 树(tree)是一种通过层次结构展示信息的控件,如下图所示是树控件示例,左窗口中是树控件,在wxPython中树控件类是wx.TreeCtrl. wx.TreeCtrl中一个常用的方法有: ...

  7. 【转】WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: 菜单Menu的自定义样式: 右键菜单ContextMenu的自定义样式 ...

  8. js插件---Bootstrap 树控件

    js插件---Bootstrap 树控件 一.总结 一句话总结:可以直接用gojs,或者搜索js,jquery的树控件,或者bootstrap树控件,一大堆 gojs 二.JS组件系列——Bootst ...

  9. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

    版权声明:本文为博主原创文章,转载请注明CSDN博客源地址! 共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/26404733   ...

随机推荐

  1. 电脑变WIFI:建立虚拟共享WIFI热点可查看WIFI密码windows中使用bat批处理命令提示符cmd创建教程含工具

    台式机也可支持移动热点,Win10却提示"我们无法设置移动热点",今天我们就另辟蹊径来调教它. ​​建立和开启虚拟WIFI共享网络 Windows 7操作系统及以后支持承载网络,可 ...

  2. Part 17 Consuming ASP NET Web Service in AngularJS using $http

    Here is what we want to do1. Create an ASP.NET Web service. This web service retrieves the data from ...

  3. Go语言核心36讲(Go语言实战与应用五)--学习笔记

    27 | 条件变量sync.Cond (上) 前导内容:条件变量与互斥锁 我们常常会把条件变量这个同步工具拿来与互斥锁一起讨论.实际上,条件变量是基于互斥锁的,它必须有互斥锁的支撑才能发挥作用. 条件 ...

  4. Python 爬取 拉钩

    ... from urllib import request from urllib import parse from urllib.error import URLError import jso ...

  5. 如何将rabbitmq集群中的某个节点移除.

    首先将要移除的节点停机. root@rabbitmq-03:~# rabbitmqctl stop Stopping and halting node 'rabbit@rabbitmq-03' ... ...

  6. PAT A1103—DFS

     Integer Factorization The K−P factorization of a positive integer N is to write N as the sum of the ...

  7. [bzoj1037]生日聚会

    dp,用f[i][j][x][y]表示i个男孩,j个女孩,以i+j为结尾的子序列男-女最多为x,女-男最多为y的合法方案数,转移到f[i+1][j][x+1][max(y-1,0)]和f[i][j+1 ...

  8. [nowcoder5668H]Sort the Strings Revision

    考虑对于$p_{i}=0$,那么可以快速比较出$s_{0},s_{1},...,s_{i-1}$与$s_{i},s_{i+1},...,s_{n}$之间的大小关系,然后对两边分别找到最小的$p_{i} ...

  9. Go语言核心36讲(Go语言实战与应用十一)--学习笔记

    33 | 临时对象池sync.Pool 到目前为止,我们已经一起学习了 Go 语言标准库中最重要的那几个同步工具,这包括非常经典的互斥锁.读写锁.条件变量和原子操作,以及 Go 语言特有的几个同步工具 ...

  10. 多线程05.thread不知道的知识

    Thread thread = new Thread(); // init(null, null, "Thread-" + nextThreadNum(), 0); //init( ...