开源
功能说明: 该代码片段是一个基于易语言编写的类模块,主要用于封装和管理 Windows 标准树形框控件(SysTreeView32)。程序集名称为“控件_树形框”,继承自“类_通用控件基类”,表明它是某个大型 UI 框架或组件库的一部分,旨在为开发者提供面向对象的方式来操作树形视图控件。
程序的核心功能是通过调用 Windows API 来创建、配置和管理树形控件,主要功能模块总结如下:
1. 控件生命周期管理:
程序定义了“_初始化”和“_销毁”两个子程序。当基于本类的对象被创建时,“_初始化”会自动运行,负责重置最大项目 ID 控件 ID 以及项目索引数组,确保对象处于干净的初始状态。当对象销毁前,“_销毁”子程序会被调用,清理占用的资源和数组数据,防止内存泄漏。
2. 控件创建与初始化:
“创建”子程序是核心功能之一。它接收父窗口句柄、标题、位置、大小等参数,使用 CreateWindowEx API 函数创建 class 名为"SysTreeView32"的窗口。该子程序设置了默认的控件风格,包括具有按钮、连线、根连线、始终显示选中状态以及滚动条等。如果控件句柄创建成功,它会注册控件事件索引,设置默认颜色(白底黑字),设置默认字体(宋体 12 号),并将句柄加入模块句柄表进行管理。它还具备智能默认值处理,如未指定宽高则自动设置为父窗口的一半大小。
3. 外观颜色设置:
程序提供了多个子程序来定制控件的视觉样式。
- “置颜色”:同时设置背景色和前景色,支持空参数默认为系统色或黑色,并通过内部事件数组更新颜色。
- “置背景色”:专门通过 SendMessage 发送 TVM_SETBKCOLOR 消息来设置背景颜色。
- “置前景色”:专门通过 SendMessage 发送 TVM_SETTEXTCOLOR 消息来设置文本颜色。
这些方法封装了底层的 Windows 消息发送过程,使调用者无需关心具体的消息常量。
4. 树形项目节点管理:
程序提供了管理树形结构节点的方法,这是树形框最核心的业务逻辑。
- “插入根项目”:用于在树形框的根级别添加一个新节点。它接受插入位置、标题和图标索引作为参数。该方法内部维护了一个“成员_项目索引”数组,用于映射自定义的项目索引到实际的控件项目句柄。每次插入成功后,最大项目 ID 会自增,并将新的索引信息加入数组,方便后续通过索引查找句柄。
- “插入子项目”:用于在指定父项目下添加子节点。虽然代码片段在此处截断,但从参数(父项目句柄、插入位置、标题、图标索引)和逻辑结构来看,其功能与插入根项目类似,区别在于需要指定父级句柄,从而构建层级结构。它同样内部处理了索引与句柄的映射关系。
5. 内部数据结构与 API 封装:
程序集变量中定义了“成员_最大项目 ID"用于生成唯一标识,定义了“成员_项目索引”数组用于存储自定义索引与系统句柄的对应关系。这种设计模式使得上层调用者可以通过简单的整数索引来操作复杂的树形节点,而不必直接处理易变的系统句柄。此外,代码大量使用了 Windows API 如 SendMessage、CreateWindowEx 以及特定的消息常量(如#TVM_INSERTITEMA),体现了其作为底层控件封装类的特性。
综上所述,该程序是一个功能完善的易语言树形框控件封装类。它屏蔽了复杂的 Windows API 调用细节,提供了创建、着色、添加节点等常用功能的简易接口,并内置了索引管理机制,适合在易语言开发环境中快速构建具有层级结构的数据展示界面。开发者只需实例化该类,调用相应子程序即可实现树形菜单、文件目录浏览等功能。
======控件_树形框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 置颜色
| |
| |------ 置背景色
| |
| |------ 置前景色
| |
| |------ 创建
| |
| |------ 插入根项目
| |
| |------ 插入子项目
| |
| |------ 取当前项目句柄
| |
| |------ 取当前索引
| |
| |------ 取项目句柄
| |
| |------ 取父项目句柄
| |
| |------ 取项目总数
| |
| |------ 取项目文本
| |
| |------ 置项目文本
| |
| |------ 连接位图列表
| |
| |------ 事件_项目被改变
| |
| |
======控件_工具条
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 添置按钮
| |
| |------ 复选钮选中
| |
| |------ 复选钮取消
| |
| |------ 按钮允许
| |
| |------ 按钮禁止
| |
| |------ 自动调整位置
| |
| |------ 复选钮是否按下
| |
| |------ 是否允许
| |
| |------ 连接正常图片组
| |
| |------ 连接热点图片组
| |
| |------ 连接禁止图片组
| |
| |------ 置背景色
| |
| |------ 取按钮数量
| |
| |------ 取按钮矩形
| |
| |------ 取事件ID
| |
| |------ 取按钮索引
| |
| |------ 事件_被单击
| |
| |------ 事件_被下拉
| |
| |------ 事件_热点被改变
| |
| |
======控件_状态条
| |
| |------ _初始化
| |
| |------ 创建
| |
| |------ 自动调整位置
| |
| |------ 分栏
| |
| |------ 置标题
| |
| |------ 取标题
| |
| |------ _销毁
| |
| |
======控件_超级列表框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 插入列
| |
| |------ 插入表项
| |
| |------ 置标题
| |
| |------ 取表项数
| |
| |------ 现行选中项
| |
| |------ 取标题
| |
| |------ 类型
| |
| |------ 置类型
| |
| |------ 删除列
| |
| |------ 删除表项
| |
| |------ 全部删除
| |
| |------ 连接图片组
| |
| |------ 连接状态图片组
| |
| |------ 取表格矩形区域
| |
| |------ 取鼠标行号
| |
| |------ 取鼠标列号
| |
| |------ 取项目坐标
| |
| |------ 置列宽度
| |
| |------ 取列宽度
| |
| |------ 取列标题
| |
| |------ 移动项目
| |
| |------ 取项目矩形区域
| |
| |------ 表格线
| |
| |------ 整行选择
| |
| |------ 自动选择
| |
| |------ 自动跟随
| |
| |------ 显示检查框
| |
| |------ 检查框是否选中
| |
| |------ 选中检查框
| |
| |------ 设置前景色
| |
| |------ 设置背景色
| |
| |------ 置文本背景色
| |
| |------ 查找表项
| |
| |------ 事件_表头被单击
| |
| |------ 事件_项目被拖动
| |
| |------ 事件_开始编辑
| |
| |------ 事件_结束编辑
| |
| |------ 事件_开始选择一个范围
| |
| |------ 事件_自动选择
| |
| |
======类_窗口基类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 可视
| |
| |------ 禁止
| |
| |------ _置初始
| |
| |------ 是否已创建
| |
| |------ 标题
| |
| |------ 取句柄
| |
| |------ 移动
| |
| |------ 取宽度
| |
| |------ 取高度
| |
| |------ 取左边
| |
| |------ 取顶边
| |
| |
======资源_图标列表
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 加入图标
| |
| |------ 从模块加入位图
| |
| |------ 从模块加入ICO
| |
| |------ 从字节集加入位图
| |
| |------ 释放列表
| |
| |------ 取句柄
| |
| |
======控件_按钮
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 事件_被单击
| |
| |------ 事件_获得焦点
| |
| |------ 事件_失去焦点
| |
| |
======控件_单选框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 置颜色
| |
| |------ 选中
| |
| |------ 事件_被单击
| |
| |------ 事件_获得焦点
| |
| |------ 事件_失去焦点
| |
| |
======控件_复选框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 置颜色
| |
| |------ 选中
| |
| |------ 事件_被单击
| |
| |------ 事件_获得焦点
| |
| |------ 事件_失去焦点
| |
| |
======控件_编辑框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 内容
| |
| |------ 置读写状态
| |
| |------ 置颜色
| |
| |------ 事件_内容被改变
| |
| |------ 事件_字符输入
| |
| |------ 事件_获得焦点
| |
| |------ 事件_失去焦点
| |
| |
======控件_组合框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 内容
| |
| |------ 加入项目
| |
| |------ 现行选中项
| |
| |------ 删除项目
| |
| |------ 清空
| |
| |------ 取项目文本
| |
| |------ 取项目数
| |
| |------ 取项目数值
| |
| |------ 置项目数值
| |
| |------ 置颜色
| |
| |------ 事件_项目被选择
| |
| |------ 事件_内容被改变
| |
| |------ 事件_列表将弹出
| |
| |------ 事件_列表被关闭
| |
| |------ 事件_项目被双击
| |
| |------ 事件_获得焦点
| |
| |------ 事件_失去焦点
| |
| |
======控件_列表框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 置颜色
| |
| |------ 取项目数值
| |
| |------ 置项目数值
| |
| |------ 删除项目
| |
| |------ 取项目数
| |
| |------ 现行选中项
| |
| |------ 是否选中
| |
| |------ 选中项目
| |
| |------ 取选中项目数
| |
| |------ 取项目文本
| |
| |------ 加入项目
| |
| |------ 清空
| |
| |------ 事件_项目被改变
| |
| |------ 事件_项目取消选择
| |
| |------ 事件_项目被双击
| |
| |------ 事件_获得焦点
| |
| |------ 事件_失去焦点
| |
| |
======控件_进度条
| |
| |------ _初始化
| |
| |------ 创建
| |
| |------ 置位置
| |
| |------ 置最大值
| |
| |------ _销毁
| |
| |
======控件_标签
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 置颜色
| |
| |------ 取标题
| |
| |
======控件_图片框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 设置位图
| |
| |------ 置字节集位图
| |
| |
======控件_分组框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 置标题颜色
| |
| |------ 置背景色
| |
| |
======控件_选择夹
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 插入子夹
| |
| |------ 现行子夹
| |
| |------ 取子夹数
| |
| |------ 选择子夹
| |
| |------ 置焦点子夹
| |
| |------ 置子夹名
| |
| |------ 事件_子夹被改变
| |
| |------ 事件_子夹即将改变
| |
| |
======控件_外形框
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 置背景色
| |
| |
======控件_窗口
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 销毁
| |
| |------ 任意移动
| |
| |------ 置外形
| |
| |------ 置背景图
| |
| |------ 总在最前
| |
| |------ 位置
| |
| |------ 事件_尺寸被改变
| |
| |------ 事件_将被消毁
| |
| |------ 事件_鼠标左键被按下
| |
| |------ 事件_鼠标左键被放开
| |
| |------ 事件_被双击
| |
| |------ 事件_鼠标右键被按下
| |
| |------ 事件_鼠标右键被放开
| |
| |------ 事件_鼠标位置被移动
| |
| |------ 事件_获取焦点
| |
| |------ 事件_失去焦点
| |
| |------ 事件_按下某键
| |
| |------ 事件_放开某键
| |
| |
======类_静态基类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 置ID
| |
| |------ 事件_被单击
| |
| |------ 事件_被双击
| |
| |------ 事件_被禁用
| |
| |------ 事件_被启用
| |
| |
======类_通用控件基类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 置ID
| |
| |------ 事件_被单击
| |
| |------ 事件_被双击
| |
| |------ 事件_右键单击
| |
| |------ 事件_按下回车键
| |
| |------ 事件_获得焦点
| |
| |------ 事件_失去焦点
| |
| |
======菜单_主菜单
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 添加子菜单
| |
| |------ 插入子菜单
| |
| |------ 清除子菜单
| |
| |------ 删除子菜单
| |
| |------ 取句柄
| |
| |------ 置窗口
| |
| |
======菜单_子菜单
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 清除菜单
| |
| |------ 添加菜单项
| |
| |------ 添加子菜单项
| |
| |------ 插入子菜单项
| |
| |------ 取句柄
| |
| |------ 弹出菜单
| |
| |------ 是否选中
| |
| |------ 是否灰化
| |
| |------ 选中
| |
| |------ 灰化
| |
| |------ 置菜单项信息
| |
| |------ 取事件ID
| |
| |------ 事件_被选择
| |
| |
======内部_自定义程序集
| |
| |------ 内部_图片按钮过程
| |
| |------ 内部_取按钮位图索引
| |
| |------ 内部_注册图形按钮类
| |
| |
======控件_图形按钮
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 创建
| |
| |------ 置图片
| |
| |------ 事件_被单击
| |
| |
======控件_滚动条
| |
| |------ _初始化
&nb
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。