博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于原版TreeView的使用
阅读量:6092 次
发布时间:2019-06-20

本文共 1397 字,大约阅读时间需要 4 分钟。

--  作者:贾渊
--  发布时间:2010-4-24 7:46:08
--  [原创]关于原版TreeView的使用

D7中原版的TreeView就很好用,但是却没有一个属性可以直接设置节点的CheckBox,经过摸索,找到一个较好的解决方案。

const  TVS_CHECKBOXES = $00000100;    procedure TForm1.SetComCtrlStyle(WinCtrl: TWinControl; Value: Integer; UseStyle: Boolean);  var  Style: Integer;  begin     if WinCtrl.HandleAllocated then     begin       Style := GetWindowLong(WinCtrl.Handle, GWL_STYLE);       if not UseStyle then       Style := Style and not Value       else Style := Style or Value;       SetWindowLong(WinCtrl.Handle, GWL_STYLE, Style);     endend
const TVS_CHECKBOXES = $00000100; procedure TForm1.SetComCtrlStyle(WinCtrl: TWinControl; Value: Integer; UseStyle: Boolean); var Style: Integer; begin if WinCtrl.HandleAllocated then begin Style := GetWindowLong(WinCtrl.Handle, GWL_STYLE); if not UseStyle then Style := Style and not Value else Style := Style or Value; SetWindowLong(WinCtrl.Handle, GWL_STYLE, Style); end; end;

 

然后在Form.Create事件中调用即可:

SetComCtrlStyle(TreeView1, TVS_CHECKBOXES, True); 
SetComCtrlStyle(TreeView1, TVS_CHECKBOXES, True);

 

另外,也可以把上述语句直接简化成一句,只不过对于不熟悉API的人来说,可读性是差了一些:

SetWindowLong(TreeView1.Handle, GWL_STYLE, GetWindowLong(TreeView1.Handle, GWL_STYLE) or $00000100); 
SetWindowLong(TreeView1.Handle, GWL_STYLE, GetWindowLong(TreeView1.Handle, GWL_STYLE) or $00000100);

 

经过这样处理后的TreeView就带有了CheckBox的效果,可是大家可能会发现,CheckBox的下边框线不见了。这是由于默认的Node行距太小,可以对此进行修改。

(须要引用CommCtrl单元)

TreeView_SetItemHeight(TreeView1.Handle, 20);  

转载地址:http://gkmwa.baihongyu.com/

你可能感兴趣的文章
阿里云主机部署安装SSL证书
查看>>
DateDiff()倒计时
查看>>
c++11新特性--decltype auto
查看>>
RawCap
查看>>
screen命令的最常见的使用方法
查看>>
我的友情链接
查看>>
Erlang教程
查看>>
linux服务器安装weblogic实战
查看>>
PostgreSQL从继承到分区(二)
查看>>
Windows7下彻底卸载MySQL5.5.21
查看>>
MySQL主从失败, 错误Got fatal error 1236解决方法
查看>>
linux资料整理之shell编程
查看>>
NTB EEPROM设置与跨节点数据传输
查看>>
我的友情链接
查看>>
a标签中调用javascript方法的几种方法:
查看>>
操作系统内核
查看>>
AU14笔记-2
查看>>
Python urllib的urlretrieve()函数解析
查看>>
(FortiGate)飞塔防火墙BYOD网络安全解决方案
查看>>
Mysql 常用函数的 总结 (转)
查看>>