TreeView/ListView/ImageList 控件改造


今天又有人发短消息问怎样更改树控件的背景色,又是一个问了上千次的问题!实在不想再回答,就放在这里自己看吧。其实用到的 api 就一条,但是很多人都没有正确的使用它们。正确的方法是:

1. 不要使用 v6 版的 TreeView 控件,同时也就不要使用 v6 版的 ImageList 控件,要用就都用 v5 版的。v5 版的除了不带检查框这个比较麻烦外,其它都可以用 SetWindowLong  简单的实现;要显示检查框到很容易,可是要使它可操作就需要点 api 功力了;在 TvwXp 类中已提供了 GetNodeCheck / SetNodeCheck 方法来获取/设置节点的 Checked 值。v5 版的另一个好处就是支持系统主题,看看 v6 版 tvw 的那个黑色检查框就恶心,在 xp 下界面全然不统一。但这个类库中没有使用系统提供的 Check 图片,而是使用了我自己的 imlxp 来显示 Check 状态,好处是可以提供多种 Check 状态供使用,只要在 _iml_check 中增加几个代表不同状态的图片就可以了,不想显示的话也只要设置某个图片为不可用(Enabled)或不可见(Visible)就行了。
2. 更换 v5 版树控件背景色后,相关的 ImageList 的背景色也要同时修改,否则图标背景色不会变过来

同时想到与 TreeView 有关系的 ImageList 如何使用 xp 图标的问题,很久以前就在梅子上发过如何解决此问题的贴,所以又找了回来并对示例做了些修改;另外也将对 ListView 控件的一些功能扩展示例放在这一起,方便以后使用,ListView 主要是实现了分组视图和平铺样式,好像还有一些小问题,具体用到时再去解决好了。

下面是文件的下载地址(原地址已失效,重新修正下载地址):
 TreeView/ImageList 改造
 ListView 改造  (08.21 做了些改进,主要是使用了 32 位半透明图标,以及自定义工具提示和列排序)
 
以及运行效果截图:


评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值