zoukankan      html  css  js  c++  java
  • TreeView控件添加复选框

    Delphi的代码,参考一下吧
    首先当然是要在Form加一个TTreeView控件咯。:)

    然后在单元的公共uses部分加一个Commctrl单元。

    好,接下来要做三件事,
    1、在FormCreate事件中
    加入如下代码
    var
    dw: DWORD;
    begin
    dw := GetWindowLong( TreeView1.Handle, GWL_STYLE);
    dw := dw or TVS_CHECKBOXES;
    SetWindowLong(TreeView1.Handle, GWL_STYLE , dw);
    end;

    2、加两个函数
    function SetTreeViewNodeChecked(ATreeView: TTreeView;
    ATreeNode: TTreeNode; Checked: Boolean): Boolean;

    function GetTreeViewNodeChecked(ATreeView: TTreeView;
    ATreeNode: TTreeNode): Boolean;

    第一个用来设置一个节点的是否被Check
    第二个用来取得一个节点的Check状态。

    3、就是这两个地实现代码了。

    function SetTreeViewNodeChecked(ATreeView: TTreeView;
    ATreeNode: TTreeNode; Checked: Boolean): Boolean;
    var
    tvItem: TTVItem;
    begin
    tvItem.mask := TVIF_HANDLE or TVIF_STATE;
    tvItem.hItem := ATreeNode.ItemId;
    tvItem.stateMask := TVIS_STATEIMAGEMASK;

    (*Image 1 in the tree-view check box image list is the
    unchecked box. Image 2 is the checked box.*)
    if Checked then
    tvItem.state := IndexToStateImageMask(2) else
    tvItem.state := IndexToStateImageMask(1);

    Result := TreeView_SetItem(ATreeView.Handle, tvItem);
    end;

    function GetTreeViewNodeChecked(ATreeView: TTreeView;
    ATreeNode: TTreeNode): Boolean;
    var
    tvItem: TTVItem;
    begin
    // Prepare to receive the desired information.
    tvItem.mask := TVIF_HANDLE or TVIF_STATE;
    tvItem.hItem := ATreeNode.ItemId;
    tvItem.stateMask := TVIS_STATEIMAGEMASK;

    // Request the information.
    TreeView_GetItem(ATreeView.Handle, tvItem);

    // Return zero if it's not checked, or nonzero otherwise.
    Result := Boolean((tvItem.state shr 12) - 1);
    end;

  • 相关阅读:
    Mysql系列(十二)—— 索引下推优化
    Mysql系列(十一)—— 性能分析其他常用监控
    套路篇(一)之软件配置
    Mysql中的变量
    Mysql系列(十一)—— 性能分析慢查询日志
    Mysql系列(十)—— 性能分析工具profiling
    Mysql系列(九)—— 性能分析explain执行计划
    secure-file-priv特性
    Levenberg-Marquardt优化和zipf分布
    关于ADM和高维空间下距离度量的问题
  • 原文地址:https://www.cnblogs.com/spiritofcloud/p/3976170.html
Copyright © 2011-2022 走看看