读书人

delphi里treeview增加checkbox功能,该

发布时间: 2012-04-15 18:39:21 作者: rapoo

delphi里treeview增加checkbox功能
各位大哥.请问大家treview里如何增加checkbox显示,如果在checkbox里能打钩,打上钩后如何实现本节点选中,如果本级节点被选中了,如何实现它下面如果有子节点也能被自动选中,子节点里的checkbox自动打上钩


[解决办法]

Delphi(Pascal) code
加checkboxSetWindowLong(TreeView1.Handle, GWL_STYLE, GetWindowLong(TreeView1.Handle, GWL_STYLE) or $00000100);
[解决办法]
利用StatueImage
而图片,标准一点的话,看下面的代码
Delphi(Pascal) code
procedure TfrmMain3.Button8Click(Sender: TObject);const strs:array[1..34] of integer=(OBM_BTNCORNERS,OBM_OLD_RESTORE,OBM_BTSIZE,OBM_OLD_RGARROW,  OBM_CHECK,OBM_OLD_UPARROW,OBM_CHECKBOXES,OBM_OLD_ZOOM,OBM_CLOSE,OBM_REDUCE,OBM_COMBO,  OBM_REDUCED,OBM_DNARROW,OBM_RESTORE,OBM_DNARROWD,OBM_RESTORED,OBM_DNARROWI,OBM_RGARROW,  OBM_LFARROW,OBM_RGARROWD,OBM_LFARROWD,OBM_RGARROWI,OBM_LFARROWI,OBM_SIZE,OBM_MNARROW,  OBM_UPARROW,OBM_OLD_CLOSE,OBM_UPARROWD,OBM_OLD_DNARROW,OBM_UPARROWI,OBM_OLD_LFARROW,OBM_ZOOM,  OBM_OLD_REDUCE,OBM_ZOOMD);var bb:HBitmap;a:Integer;bmp:TBitmap;begin  for a:=100 to 50000 do  begin    bb:=LoadBitmap(0,MakeIntResource(a));    if bb<>0 then    begin      bmp:=TBitmap.Create;      bmp.Transparent:=true;      bmp.Handle:=bb;      bmp.SaveToFile('C:\SysImageLarge\'+IntToStr(a)+'.bmp');      bmp.Free;    end;  end;  Prompt('ok');  exit;  for a:=1 to 34 do  begin    bb:=LoadBitmap(0,MakeIntResource(strs[a]));    if bb=0 then//      Prompt('error')    else begin      bmp:=TBitmap.Create;      bmp.Transparent:=true;      bmp.Handle:=bb;      bmp.SaveToFile('C:\SysImage\'+IntToStr(strs[a])+'.bmp');//      Image1.Picture.Bitmap.Assign(bmp);//      Image1.Picture.SaveToFile      bmp.Free;    end;  end;  Prompt('ok');  bmp := TBitmap.Create;  try    bmp.Handle := LoadBitmap(0, PChar(OBM_CHECK)); // 第一个参数0类型为THandle,指向Windows“桌面”窗口。    Image1.Picture.Assign(bmp);    Image1.Picture.savetofile('C:\OBM_CHECK.bmp');//    Image1.Canvas.Draw(0, 0, bmp);  finally    FreeAndNil(bmp);  end;end; 

读书人网 >.NET

热点推荐