在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. Python-用户登录三次错误锁定

    黑名单:blacklist.txt 用户名单:username_password.py # Author:Stephen Yuan # 用户名和密码 username_password = { ', ...

  2. go api json 输出尝试

    package main import ( "fmt" "net/http" //"net/url" "github.com/dr ...

  3. linux下自定义dubbo的shell脚本

  4. Error during artifact deployment. See server log for details.

    Error during artifact deployment. See server log for details. 这两个地方要一样.不然.就报 Error during artifact d ...

  5. Oracle不能并行直接添加主键的方法:先建唯一索引后建主键

    环境:Oracle 11.2.0.3 需求:生产一张表由于前期设计不当,没有主键.现需要添加主键,数据量很大,想并行建立. 1.直接添加,提示ora-3001:未实施的功能;只能单线程建立主键 SQL ...

  6. Centos Tomcat监控

    1.Window环境下jdk的bin目录中提供jvisualvm.exe工具,但是linux环境中的jdk未提供. 用window下的jvisualvm远程监控linux环境下的tomcat 两种连接 ...

  7. 转载:指针delete后要设置为NULL

    本文来自:http://rpy000.blog.163.com/blog/static/196109536201292615547939/ 众所周知,最开始我们用new来创建一个指针,那么等我们用完它 ...

  8. python大法好——Python2.x与3​​.x版本区别

    python大法好——Python2.x与3​​.x版本区别 Python的3​​.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级. 为了不带 ...

  9. 0初识Linux

    今天三八妇女节,Linux就该这么学,开课第一天.信心满满,激动,期待,要努力了.(博客为预习写的,今天又做了更新.)   Linux第一印象就是黑色背景屏幕,上面还有好多代码,敲的一手好的命令操控着 ...

  10. Eclipse 中Git的使用及如何解决冲突

    1. 如何导入已有Git项目 1.1 File——>import… 出现以下界面 1.2 找到Git,然后双击‘Project from Git.或者点击next 1.3 双击Clone URI ...