国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

創建一個帶有CheckBox的TreeView

2019-11-17 05:24:41
字體:
來源:轉載
供稿:網友

  void __fastcall TForm1::FormCreate(TObject *Sender)
{
       SetWindowLong(TreeView1->Handle,GWL_STYLE,
            GetWindowLong(TreeView1->Handle,GWL_STYLE) TVS_CHECKBOXES);

}
//判定一個節點是否處于Checked狀態
bool  GetNodeChecked(TTreeNode *ANode)
{
      TVITEM tvItem;
      tvItem.mask = TVIF_HANDLE TVIF_STATE;
      tvItem.hItem = ANode->ItemId;
      tvItem.stateMask = TVIS_STATEIMAGEMASK;
      TreeView_GetItem(ANode->TreeView->Handle, &tvItem);
      return ((BOOL)(tvItem.state >> 12) -1);
}
//設置一個節點為Checked狀態或者Unchecked狀態,由參數IsSetToChecked來確定
void  SetNodeChecked(TTreeNode *ANode,bool IsSetToChecked)
{
      TVITEM tvItem;
      tvItem.mask = TVIF_HANDLE TVIF_STATE;
      tvItem.hItem = ANode->ItemId;
      tvItem.stateMask = TVIS_STATEIMAGEMASK;
      tvItem.state = INDEXTOSTATEIMAGEMASK(IsSetToChecked?2:1);
      TreeView_SetItem(ANode->TreeView->Handle, &tvItem);
}
void  SetChildChecked(TTreeNode *ANode,bool yn)
{     // 把它的子孫都置成一樣
      int count=ANode->Count;
      SetNodeChecked(ANode,yn);
      if (count!=0)
          for (int i=0;i<count;i++)    // 遞歸
             SetChildChecked(ANode->Item[i],yn);
}
//    TTreeNode *ClickNode;     //  保存點中的節點
//    bool      NodeChecked;    //  保存點中的節點checked
void __fastcall TForm1::TreeView1MouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
      ClickNode=TreeView1->GetNodeAt(X,Y);
      if (ClickNode!=NULL)   // 保存原節點的Checked值
         NodeChecked=GetNodeChecked(ClickNode);
}
void __fastcall TForm1::TreeView1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
      if (ClickNode!=NULL)
         if (GetNodeChecked(ClickNode)!=NodeChecked)
            {  // 把它的子孫都置成一樣
               NodeChecked=!NodeChecked;  // 更新它
               SetChildChecked(ClickNode,NodeChecked);
            }   
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼木县| 留坝县| 泸水县| 卢龙县| 博罗县| 疏勒县| 安国市| 武山县| 深水埗区| 凯里市| 正蓝旗| 赤壁市| 日土县| 沿河| 毕节市| 方城县| 桃源县| 安康市| 河池市| 景德镇市| 福建省| 唐海县| 洞口县| 安平县| 名山县| 巴林左旗| 合山市| 河西区| 榆树市| 湖南省| 丰台区| 萝北县| 漳州市| 绥德县| 洛浦县| 湄潭县| 延长县| 民勤县| 延长县| 米泉市| 泽库县|