在MFC中,会用到树形控件,这里做下记录。

增加节点

①增加根节点

 HTREEITEM hRoot;
CString str = "Root"
hRoot = m_treeCtrl.InsertItem(str,TVI_LAST);

②插入孩子节点

 //添加节点位于hRoot所有孩子节点末尾
HTREEITEM hChild = m_treeCtrl.InsertItem(str,hRoot);
//或者
HTREEITEM hChild = m_treeCtrl.InsertItem(str,hRoot,TVI_LAST);

删除节点

①删除单个节点

 m_treeCtrl.DeleteItem(delItem);

②删除所有节点

 m_treeCtrl.DeleteAllItems();

修改节点名

 m_treeCtrl.SetItemText(m_treeCtrl.GetSelectedItem(),"newNodeName");//修改当前选中节点名为newNodeName

获得节点句柄

 //获得根节点
HTREEITEM hRootItem;
hRootItem = m_treeCtrl.GetRootItem();
//获得当前节点
HTREEITEM hCurItem;
hCurItem = m_treeCtrl.GetSelectedItem();
//获得hItem的前一个节点
HTREEITEM hPreItem;
hPreItem = m_treeCtrl.GetNextItem(hItem,TVGN_PREVIOUS);
//获得hItem的后一个节点
HTREEITEM hNextITem;
hNextITem = m_treeCtrl.GetNextItem(hItem,TVGN_NEXT);

展开或收缩子节点

 if(m_treeCtrl.ItemHasChildren(hRoot))//判断某个节点是否有孩子节点
m_treeCtrl.Expand(hRoot,TVE_EXPAND);//展开或收缩子节点

选择某节点后,并让其获得焦点

 m_treeCtrl.SetItemState(hItem,TVIS_SELECTED,TVIS_SELECTED);//设置节点状态为被选中
m_treeCtrl.SelectItem(hItem);
//或者
//TREE控件样式必须设置为TVS_SHOWSELALWAYS
m_treeCtrl.SelectItem(hItem)//选择该节点
m_treeCtrl.SetFocus();//设置焦点

判断鼠标是否有击中节点并获得击中节点

 CPoint point;
GetCursorPos(&point);
::ScreenToClient(m_treeCtrl.GetSafeHwnd(),&point);
UINT uFlags;
uFlags = TVHT_ONITEM;
HTREEITEM hItem = m_treeCtrl.HitTest(point,&uFlags);
if(hItem && (TVHT_ONITEM & uFlags))
{}

参考

https://blog.csdn.net/shuilan0066/article/details/6638504

MFC树形控件的使用(右键点击)的更多相关文章

  1. MFC 树形控件

    Tree Control属性:Has Buttons.Has Lines.Lines At Root这三个设为True 常用的事件:SelectChanged() ico图片放到项目的res文件夹中( ...

  2. vue_elementUI_ tree树形控件 获取选中的父节点ID

    el-tree 的 this.$refs.tree.getCheckedKeys() 只可以获取选中的id 无法获取选中的父节点ID想要获取选中父节点的id;需要如下操作1. 找到工程下的node_m ...

  3. VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下)

    前面一节讲了树形控件Tree Control的简介.通知消息以及相关数据结构,本节继续讲下半部分,包括树形控件的创建.CTreeCtrl类的主要成员函数和应用实例. 树形控件的创建 MFC为树形控件提 ...

  4. VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)

    前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统中是很常见的,例如资源管理器左侧的 ...

  5. Visual studio C++ MFC之树形控件Tree Control

    背景 本篇旨在MSDN帮助文档下总结树形控件Tree Control的使用,并列出碰到的具体问题. 正文 树形控件Tree Control的类则是CTreeCtrl,具体成员对象详见链接,以下则描述一 ...

  6. VS2010-MFC(常用控件:树形控件Tree Control 下)

    转自:http://www.jizhuomi.com/software/203.html 前面一节讲了树形控件Tree Control的简介.通知消息以及相关数据结构,本节继续讲下半部分,包括树形控件 ...

  7. js树形控件—zTree使用总结

    0 zTree简介 树形控件的使用是应用开发过程中必不可少的.zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 0.0 ...

  8. 关于 DevExpress.XtraTreeList.TreeList 树形控件 的操作

    作为一个C#程序员,在写程序时一直以来都使用的微软那一套控件,用起来特别爽,可是最近公司的一个项目用到了DevExpress框架,不用不知道,一用吓一跳,不得不承认这个框架确实很强大,效果也很炫,但是 ...

  9. MFC TreeCtrl 控件(一):简单使用

    本文描写叙述了 MFC 中的树形控件 TreeCtrl 的简单使用,内容包含数据项的加入.图标设置.提示信息设置等. 新建基于对话框的应用程序,加入一个 TreeCtrl ,为其定义一个控件变量 m_ ...

随机推荐

  1. Js将数字转化为中文大写

    function number_chinese(str) { var num = parseFloat(str); var strOutput = "", strUnit = '仟 ...

  2. 第18课 类型萃取(2)_获取返回值类型的traits

    1. 获取可调用对象返回类型 (1)decltype:获取变量或表达式的类型(见第2课) (2)declval及原型 ①原型:template<class T> T&& d ...

  3. 剑指offer题目解答合集(C++版)

    数组中重复的数字 二维数组中查找 字符串 替换空格 二叉树的编码和解码 从尾到头打印链表 重建二叉树 二叉树的下一个节点 2个栈实现队列 斐波那契数列 旋转数字 矩阵中的路径 机器人的运动范围 剪绳子 ...

  4. linux服务之ntp与dns篇

    ntp复习: 简介:对于计算机时间的同步管理操作服务器 部署:(服务端和客户端或者说集群) 1.服务端下载ntp 2.打开配置文件/etc/ntp.conf: server 127.127.1.0  ...

  5. REST framwork之解析器

    一 我们首先要知道解析器是什么以及他的功能: REST framework 包含许多内置的解析器类,允许接受各种媒体类型(media types)的请求.还支持自定义解析器,这使你可以灵活地设计 AP ...

  6. 开源项目初涉(C++自我学习开始)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://i.cnblogs.com/EditPosts.aspx?postid=8428885 临近2018农历新年,我还在上班,哈哈. ...

  7. 初试Python语法小试牛刀之冒泡排序

    Python很火,心里很慌,没吃过猪肉,也要见见猪走路. 看了几天Python的语法,大概初步了解了一点点,https://www.liaoxuefeng.com/wiki/0014316089557 ...

  8. DML DDL DCL

    转自:https://blog.csdn.net/level_level/article/details/4248685

  9. ArcGIS自定义工具箱-字段分割

    ArcGIS自定义工具箱-字段分割 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:用指定分割符分割字段, 用例:湖南省长沙市=>湖南/长沙 数据源: 使 ...

  10. Linux ssh命令

    SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息. ...