Delphi让TreeView前面显示CheckBox

下面的代码可以让Treeview前面显示CheckBox.


const
TVS_CHECKBOXES = $00000100;

procedure 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;




然后 在 OnCreate 调用:


SetComCtrlStyle(TreeView1, TVS_CHECKBOXES, True);




或者干脆简单点,一句话完事:


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

正在打勾的TreeNode: TreeView.GetNodeAt(X, Y)
取得打勾的代码也有了
设置打勾状态 TreeNode.StateIndex := Byte(boolCheckState)+1
得到父节点 TreeNode.Parent
得到子节点 TreeNode.getFirstChilde/GetNextChiled(AChildNode)

Delphi中的Boolean是1byte的数据类型,只有0或1两种值,Byte(ABoolean)就是什么都没做把它当成一个Byte值,实际上和Ord()的作用是一样的

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值