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

embedded/2024/12/22 22:54:22/

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.ppmy.cn/embedded/147921.html

相关文章

数据结构—图

目录 一、图的定义 二、图的基本概念和术语 2.1有向图 2.2无向图 2.3简单图 2.4多重图 2.5完全图 2.6子图 2.7连通、连通图和连通分量 2.8强连通图、强联通分量 2.9生成树,生成森林 2.10顶点的度、入度和出度 2.11边的权和网 2.12稠密图、稀疏图 2.1…

【docker】容器编排之docker swarm

Docker Swarm容器编排详细讲解 Docker Swarm是Docker的原生容器编排工具,它通过将多个Docker引擎组合成一个集群来实现高效的容器部署和管理。 Swarm提供了服务发现、负载均衡、扩展、自动恢复等功能,能够让开发者和运维人员以更简便的方式管理容器化应…

VMWare 的克隆操作

零、碎碎念 VMWare 的这个克隆操作很简单,单拎出来成贴的目的是方便后续使用。 一、操作步骤 1.1、在“源”服务器上点右键,选择“管理--克隆” 1.2、选择“虚拟机的当前状态”为基础制作克隆,如下图所示,然后点击“下一页” 1.3、…

亚矩阵云手机:跨境直播的超强助力

在跨境直播的蓬勃浪潮中,网络卡顿、延迟以及诸多技术难题犹如重重迷雾,困扰着众多从业者,阻碍着业务的拓展与流量的获取。而亚矩阵云手机的出现,恰似一盏明灯,为跨境直播照亮了前行的道路,凭借其卓越的特性…

瑞吉外卖项目学习笔记(二)Swagger、logback、表单校验和参数打印功能的实现

瑞吉外卖项目学习笔记(一)准备工作、员工登录功能实现 文章目录 3 项目组件优化3.1 实现Swagger文档输出3.2 实现logback日志打印3.3 实现表单校验功能3.4 实现请求参数和响应参数的打印 3 项目组件优化 3.1 实现Swagger文档输出 1)在application.yml中增加knife4…

Flink调优----反压处理

目录 概述 1.1 反压的理解 1.2 反压的危害 定位反压节点 2.1 利用 Flink Web UI 定位 通过 WebUI 看到 Map 算子处于反压:​编辑 分析瓶颈算子 2.2 利用 Metrics 定位 根据指标分析反压 可以进一步分析数据传输 反压的原因及处理 3.1 查看是否数据倾斜 …

Android settings命令详解

文章目录 Android 中的 settings 命令详细介绍基本语法使用示例1. 查看设置值2. 修改设置值3. 删除设置项 命令选项1. get 子命令2. put 子命令3. delete 子命令 命名空间详解1. system2. secure3. global 常见设置项全局设置(global)安全设置&#xff0…

热更新解决方案4——xLua热补丁

概述 运行时不在执行C#中的代码,而是执行Lua中的代码,相当于是打了个补丁。 1.第一个热补丁 2.多函数替换 3.协程函数替换 在原HotfixMain脚本中只加个协程函数即可(和在Start中启动协程函数) 4.索引器和属性替换 在HotfixMain中…