国产探花免费观看_亚洲丰满少妇自慰呻吟_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);
            }   
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 纳雍县| 盐津县| 尖扎县| 上虞市| 宜黄县| 宝应县| 万州区| 社旗县| 曲麻莱县| 东乌| 修水县| 吉木乃县| 巴塘县| 都兰县| 长泰县| 台南市| 自贡市| 达州市| 仁布县| 鸡泽县| 南康市| 灵宝市| 洛扎县| 松潘县| 扬中市| 石渠县| 忻州市| 四平市| 天峨县| 曲麻莱县| 东至县| 宣化县| 聂荣县| 遂平县| 塔城市| 南溪县| 阿城市| 黎平县| 肥东县| 石阡县| 渭源县|