找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 9164|回复: 17

【VB】不依赖ocx,借助ListBox实现自己的TreeView

[复制链接]
发表于 2016-5-15 06:48:48 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
20160515071629.png
效果马马虎虎,但基本功能都有。
这个TreeView是用ListBox实现的。VB6需要引用mscomctl.ocx才能使用Windows的标准风格的TreeView,为了能减少这个依赖,我们可以自己实现一个TreeView。典型的就是利用ListBox来实现。

用法很简单,用AddNode来添加节点,返回值是节点Id,可以通过制定AddNode的“父节点Id”参数来给节点添加子节点。
范例代码:
  1. Option Explicit

  2. Private Sub Form_Load()
  3. Dim HeadNode As Long
  4. Dim ExportNode As Long
  5. Dim ImportNode As Long
  6. Dim ResourceNode As Long

  7. Dim SegmentNode As Long

  8. With tvStruct
  9.     HeadNode = .AddNode("头部", 0)
  10.     ExportNode = .AddNode("导出", 0)
  11.     ImportNode = .AddNode("导入", 0)
  12.     ResourceNode = .AddNode("资源", 0)
  13.    
  14.     .AddNode "EXE 头部", 0, HeadNode
  15.     .AddNode "PE 头部", 0, HeadNode
  16.     .AddNode "可选头部", 0, HeadNode
  17.     SegmentNode = .AddNode("段落头部", 0, HeadNode)
  18.    
  19.     .AddNode ".text", 0, SegmentNode
  20.     .AddNode ".data", 0, SegmentNode
  21.     .AddNode ".rsrc", 0, SegmentNode
  22.    
  23.     .AddNode "kernel32.dll", 0, ImportNode
  24.     .AddNode "user32.dll", 0, ImportNode
  25.     .AddNode "gdi32.dll", 0, ImportNode
  26. End With
  27. End Sub
复制代码
示范exe: A5_TR33V13W_Bin.7z (10.1 KB, 下载次数: 25)
7z附件校验信息:(单个exe文件)49152 字节
SHA256: E7A096EDBCE90754C788BDC8FC4E6BEB9BD9C4EFDF97F042BAF10DDCD87BA4C8
源码下载请先回帖。
游客,如果您要查看本帖隐藏内容请回复

本帖被以下淘专辑推荐:

回复

使用道具 举报

 楼主| 发表于 2016-5-15 06:49:46 | 显示全部楼层
现在发帖如果发Bin,我会带上哈希校验信息,以防止中间人攻击。
回复 赞! 靠!

使用道具 举报

发表于 2016-5-15 18:33:19 | 显示全部楼层
已学习!
回复

使用道具 举报

发表于 2016-5-16 11:45:05 | 显示全部楼层
A5真厉害!
回复

使用道具 举报

发表于 2016-5-25 20:23:41 | 显示全部楼层
学习~ 学习~
回复 赞! 靠!

使用道具 举报

发表于 2016-11-17 10:10:27 | 显示全部楼层
收下了了
回复

使用道具 举报

发表于 2017-11-23 16:03:22 | 显示全部楼层
kjkjj 不依赖ocx,借助ListBox实现自己的TreeView [修改]
高级模式
回复 赞! 靠!

使用道具 举报

发表于 2017-12-29 23:09:21 | 显示全部楼层
这个很好,试一试
回复 赞! 靠!

使用道具 举报

发表于 2017-12-30 12:50:03 | 显示全部楼层
呵呵,有点意思。不过感觉实用性不太大。
回复 赞! 靠!

使用道具 举报

 楼主| 发表于 2018-1-1 02:32:29 | 显示全部楼层
涐吢铱舊囿儚 发表于 2017-12-30 12:50
呵呵,有点意思。不过感觉实用性不太大。

实用性还是有的。用它的话你就可以减少对某TreeView的ocx的依赖了。
回复 赞! 靠!

使用道具 举报

发表于 2018-9-15 00:44:59 | 显示全部楼层
看看用的什么手段
回复 赞! 靠!

使用道具 举报

发表于 2019-11-1 16:05:33 | 显示全部楼层
0xAA55 发表于 2018-1-1 02:32
实用性还是有的。用它的话你就可以减少对某TreeView的ocx的依赖了。

感觉不想依赖ocx的话,完全可以用CreateWindow创建系统原生控件,封装到UserControl里面就行了。
回复 赞! 靠!

使用道具 举报

 楼主| 发表于 2019-11-6 15:22:00 | 显示全部楼层
系统消息 发表于 2019-11-1 16:05
感觉不想依赖ocx的话,完全可以用CreateWindow创建系统原生控件,封装到UserControl里面就行了。 ...

麻烦。
回复 赞! 靠!

使用道具 举报

发表于 2020-4-3 22:30:27 | 显示全部楼层
看看学习下
回复 赞! 靠!

使用道具 举报

发表于 2020-7-8 10:24:53 | 显示全部楼层
本帖最后由 china_shy_wzb 于 2020-7-20 14:00 编辑

自己动手,借助ListBox实现Listview
回复 赞! 靠!

使用道具 举报

发表于 2022-5-9 16:02:16 | 显示全部楼层
非常感谢~~支持~~~
回复 赞! 靠!

使用道具 举报

发表于 2023-5-19 15:08:20 | 显示全部楼层
谢谢分享,前来考古
回复 赞! 靠!

使用道具 举报

发表于 2024-8-15 21:06:47 | 显示全部楼层
好东西
回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-12-22 01:22 , Processed in 0.046435 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表