請問版主有沒有CheckListBox的原件但裡面check 的 cross 是用顏色表示 |
尚未結案
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi SamSam1230, 運用 Delphi 提供的 CheckListBox 元件,再如 wameng 版大所言,自行繪製即可
1.set Style for the CheckListBox to lbOwnerDrawFixed 2.Add below codes to it's OnDrawItem event
procedure TForm1.CheckListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var Offsetx,Offsety: Integer; CRect : TRect; CC : TColor; begin OffsetX := 2; Offsety := 1; with (Control as TCheckListBox) do begin CRect.Left := ItemRect(Index).Left; CRect.Right := ItemRect(Index).Left 15; CRect.Top := ItemRect(Index).Top; CRect.Bottom := ItemRect(Index).Bottom; if Checked[Index] then begin CC := Canvas.Brush.Color; Canvas.Brush.Color := Color; Canvas.FillRect(CRect); Canvas.Brush.Color := ClBlue; // Fill Color Canvas.Rectangle(CRect.Left OffsetX,Crect.Top OffsetY,Crect.Right - OffsetX,Crect.Bottom - OffsetY); Canvas.Brush.Color := CC; end; end; with (Control as TCheckListBox).Canvas do begin FillRect(Rect); TextOut(Rect.Left OffsetX, Rect.Top, (Control as TCheckListBox).Items[Index]); end; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |