在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. 2017-2018-2 20165312 实验三《敏捷开发与XP实践》实验报告

    2017-2018-2 20165312 实验三<敏捷开发与XP实践>实验报告 一.实验内容 1.XP基础 极限编程(Extreme Programming,XP)是一种全新而快捷的软件开 ...

  2. CentOS7.5下安装Mycat连接MySQL8.0

    MyCat详细介绍,请参考https://www.biaodianfu.com/mycat.html 9066管理端口,请参考https://www.cnblogs.com/parryyang/p/5 ...

  3. Northwind数据库练习及参考答案

    --查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期.订单ID.客户ID和雇员ID等字段的值 Create View Orderquery as Select OrderDa ...

  4. springMVC的高级数据绑定,以及json交互,全局异常配置,

    一.窄化请求映射 1.在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理. 如下: @Con ...

  5. java为什么不能根据返回值重载?

    我以前对Java中为什么不能根据返回值进行重载,而只能根据方法的参数进行重载非常不理解.比如void f(){}和int f(){},虽然他们有同样的名字,但是很容易区分.如果我这样做,肯定是没问题的 ...

  6. DELL服务器r710配置RAID

    DELL服务器r710配置RAID: 1.开机后等待DELL图标出现,连续按ctrl+r,进入RAID配置界面: 2.进入RAID配置界面,如果是下面的这个界面,选择Disk group 0这项需要按 ...

  7. bower install的时候报错

    安装错误提示:C:\Scott>bower install bootstrap bower not-cached git://github.com/twbs/bootstrap.git#* bo ...

  8. java GC是在什么时候,对什么东西,做了什么事情

    面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?” 面试题目:地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete.free掉,你 ...

  9. python学习笔记_week28

    heap import heapq import random heap = [] data = list(range(10000)) random.shuffle(data) # for num i ...

  10. LNMP 支持 ThinkPHP 的 pathinfo 模式

    注意使用LNMP 1.4版 1.修改php.ini 启用pathinfo /usr/local/php/etc/php.ini cgi.fix_pathinfo = 0 值改为1 2.修改/usr/l ...