技术宅的结界

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

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1191|回复: 10
收起左侧

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

[复制链接]

1020

主题

2262

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
201
威望
271 点
宅币
17272 个
贡献
34501 次
宅之契约
0 份
在线时间
1636 小时
注册时间
2014-1-26
发表于 2016-5-15 06:48:48 | 显示全部楼层 |阅读模式

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

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

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

用法很简单,用AddNode来添加节点,返回值是节点Id,可以通过制定AddNode的“父节点Id”参数来给节点添加子节点。
范例代码:
[Visual Basic] 纯文本查看 复制代码
Option Explicit

Private Sub Form_Load()
Dim HeadNode As Long
Dim ExportNode As Long
Dim ImportNode As Long
Dim ResourceNode As Long

Dim SegmentNode As Long

With tvStruct
    HeadNode = .AddNode("头部", 0)
    ExportNode = .AddNode("导出", 0)
    ImportNode = .AddNode("导入", 0)
    ResourceNode = .AddNode("资源", 0)
    
    .AddNode "EXE 头部", 0, HeadNode
    .AddNode "PE 头部", 0, HeadNode
    .AddNode "可选头部", 0, HeadNode
    SegmentNode = .AddNode("段落头部", 0, HeadNode)
    
    .AddNode ".text", 0, SegmentNode
    .AddNode ".data", 0, SegmentNode
    .AddNode ".rsrc", 0, SegmentNode
    
    .AddNode "kernel32.dll", 0, ImportNode
    .AddNode "user32.dll", 0, ImportNode
    .AddNode "gdi32.dll", 0, ImportNode
End With
End Sub
示范exe: A5_TR33V13W_Bin.7z (10.1 KB, 下载次数: 16)

本帖被以下淘专辑推荐:

1020

主题

2262

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
201
威望
271 点
宅币
17272 个
贡献
34501 次
宅之契约
0 份
在线时间
1636 小时
注册时间
2014-1-26
 楼主| 发表于 2016-5-15 06:49:46 | 显示全部楼层
现在发帖如果发Bin,我会带上哈希校验信息,以防止中间人攻击。

13

主题

76

帖子

1239

积分

用户组: 上·技术宅

UID
888
精华
0
威望
0 点
宅币
398 个
贡献
765 次
宅之契约
0 份
在线时间
36 小时
注册时间
2015-5-31
发表于 2016-5-15 18:33:19 | 显示全部楼层
已学习!
回复

使用道具 举报

34

主题

135

帖子

6976

积分

用户组: 管理员

UID
77
精华
11
威望
112 点
宅币
6433 个
贡献
129 次
宅之契约
0 份
在线时间
95 小时
注册时间
2014-2-22
发表于 2016-5-16 11:45:05 | 显示全部楼层
A5真厉害!
回复

使用道具 举报

0

主题

2

帖子

19

积分

用户组: 初·技术宅

UID
1715
精华
0
威望
2 点
宅币
13 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2016-5-24
发表于 2016-5-25 20:23:41 | 显示全部楼层
学习~ 学习~

0

主题

3

帖子

14

积分

用户组: 初·技术宅

UID
967
精华
0
威望
1 点
宅币
9 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2015-7-18
发表于 2016-11-17 10:10:27 | 显示全部楼层
收下了了
回复

使用道具 举报

1

主题

5

帖子

17

积分

用户组: 初·技术宅

UID
3035
精华
0
威望
1 点
宅币
10 个
贡献
0 次
宅之契约
0 份
在线时间
1 小时
注册时间
2017-11-2
发表于 2017-11-23 16:03:22 | 显示全部楼层
kjkjj 不依赖ocx,借助ListBox实现自己的TreeView [修改]
高级模式

0

主题

4

帖子

21

积分

用户组: 初·技术宅

UID
3274
精华
0
威望
2 点
宅币
13 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2017-12-29
发表于 2017-12-29 23:09:21 | 显示全部楼层
这个很好,试一试

0

主题

6

帖子

33

积分

用户组: 初·技术宅

UID
2709
精华
0
威望
2 点
宅币
23 个
贡献
0 次
宅之契约
0 份
在线时间
3 小时
注册时间
2017-7-20
发表于 2017-12-30 12:50:03 | 显示全部楼层
呵呵,有点意思。不过感觉实用性不太大。

1020

主题

2262

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
201
威望
271 点
宅币
17272 个
贡献
34501 次
宅之契约
0 份
在线时间
1636 小时
注册时间
2014-1-26
 楼主| 发表于 2018-1-1 02:32:29 | 显示全部楼层
涐吢铱舊囿儚 发表于 2017-12-30 12:50
呵呵,有点意思。不过感觉实用性不太大。

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

0

主题

31

帖子

89

积分

用户组: 小·技术宅

UID
1457
精华
0
威望
2 点
宅币
54 个
贡献
0 次
宅之契约
0 份
在线时间
5 小时
注册时间
2016-1-29
发表于 2018-9-15 00:44:59 | 显示全部楼层
看看用的什么手段

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2019-2-19 15:23 , Processed in 0.112104 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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