当前位置: 首页 > article >正文

MFC/C++学习系列之简单记录11——树控件的使用

MFC/C++学习系列之简单记录11——树控件的使用

  • 前言
  • CTreectrl使用
    • 界面设置
    • 代码使用
    • 简单设计
    • 其他使用
    • 注意!
  • 总结


前言

在之前的界面设计中使用得很少,但是可以学习一下,以备不时之需!


CTreectrl使用

界面设置

在这里插入图片描述
在工具箱中选择Tree Control控件。
可以注意一下几点:

  • 具有按钮:节点旁边显示按钮。
  • 具有行:树形控件中的每个节点都像表格中的一行那样显示。
  • 行在根处:在根节点处显示子节点,并且正确地插入根节点和其子节点。
  • 整行选择:使得当用户点击树形控件的任何地方时,整个行都会被选中。
    以上的属性使用较多,需要了解。

代码使用

HTREEITEM root= m_tree.InsertItem(TEXT("根节点"), 0, 0, NULL);
HTREEITEM root1= m_tree.InsertItem(TEXT("父节点"), 1, 1, root);
HTREEITEM root2 = m_tree.InsertItem(TEXT("子节点"), 2, 2, root1);

  • m_tree是界面拖动了控件后添加成员变量。
  • TEXT(“根节点”):根节点的文本。
  • HTREEITEM 是一个用于标识树形控件中的一个句柄,用于引用树形控件中的特定节点,以便进行各种操作,如插入子节点、删除节点、获取节点信息等。
    上述的代码也是一层嵌入一层。根节点定义后,在根节点后嵌入父节点。
    在这里插入图片描述

简单设计

查询了一些资料,发现都可以把文字编成图标。利用工程中现有的图标,把文字替换掉。

HICON icon[3];
icon[0] = AfxGetApp()->LoadIconW(IDR_MAINFRAME);
icon[1] = AfxGetApp()->LoadIconW(IDR_MAINFRAME);
icon[2] = AfxGetApp()->LoadIconW(IDR_MAINFRAME);

image_list.Create(30, 30, ILC_COLOR32, 4, 4);
image_list.Add(icon[0]);
image_list.Add(icon[1]);
image_list.Add(icon[2]);
	
m_tree.SetImageList(&image_list,TVSIL_NORMAL);
  • 设置图像列表:使用到HICON类型的数组,用于存储图标的句柄。IDR_MAINFRAME是资源标识符,也就是项目本身自带的图标资源。
  • CImageList对象,并调用Create方法初始化图像列表。把图标设置到列表中,可以设置宽度、高度、数量等。
  • SetImageList就是将图标设置到节点中。
    通过上述代码,就可以将文本替换成图标显示了。具体效果如下:

在这里插入图片描述

其他使用

  • GetCount():返回树形控件中的项目总数。
  • GetSelectedItem():获取当前选中的节点句柄。
  • SelectItem():设置默认选项。

注意!

CImageList image_list;

这句话需要放置在.h文件中,才能将图标显示出来!作为成员属性进行使用了。


总结

学会了设置图标类型的树控件!


http://www.kler.cn/a/452488.html

相关文章:

  • Java中以某字符串开头且忽略大小写字母如何实现【正则表达式(Regex)】
  • 工厂常用软件系统大全中英文全称对照表及功能介绍应用场景ERP MES WMS SCADA IOT SAP等软件系统介绍
  • 【从零开始入门unity游戏开发之——C#篇29】C#泛型(T)和 泛型约束
  • 前端Python应用指南(三)Django vs Flask:哪种框架适合构建你的下一个Web应用?
  • 在 CentOS 8 系统上安装 Jenkins 的全过程
  • uniapp 项目基础搭建(vue2)
  • Python PDF转换工具箱(PDF转图片,word,拆分,删除,提取)
  • HarmonyOS NEXT 实战之元服务:静态案例效果---查看国际航班服务
  • RF分类-随机森林(Random Forest)
  • linux文件操作命令
  • 【C++决策和状态管理】从状态模式,有限状态机,行为树到决策树(二):从FSM开始的2D游戏角色操控底层源码编写
  • 什么是液体神经网络(LNN)
  • Excel批量设置行高,Excel表格设置自动换行后打印显示不全,Excel表格设置最合适的行高后打印显示不全,完美解决方案!!!
  • 攻防世界 unserialize3
  • 单片机长耗时前后台任务优化
  • 机器学习连载
  • SpringAI人工智能开发框架006---SpringAI多模态接口_编程测试springai多模态接口支持
  • workman服务端开发模式-应用开发-后端api推送工具开发
  • C# OpenCV机器视觉:模板匹配
  • ChatGPT详解