TListBox Items自訂顏色,Items位置改變,反白無法消除問題 |
答題得分者是:RaynorPao
|
海星
高階會員 發表:41 回覆:217 積分:106 註冊:2003-01-09 發送簡訊給我 |
我的TListBox 要讓 Items 顯示自訂的顏色,不想用預設醜醜的藍色,
可是當使用者點選其他的 Items 時,下面的程式碼並不會把前一個反白
重繪過,他還是保持原來的反白,要如何讓前一個被選取的 Items 恢復
正常顏色不會反白?
void __fastcall TMainForm::MoveListDrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { int Offset = 2; TCanvas *Canvas=((TListBox*)Control)->Canvas; if( Index != MoveList->ItemIndex ) { MoveList->Canvas->Brush->Color = Color3; Canvas->Font->Color=Index%2? clBlue: clRed; Canvas->FillRect(Rect); } else { Canvas->Brush->Color = Color1; Canvas->Font->Color = FontColor1; Canvas->FillRect(Rect); } Canvas->TextOut(Rect.Left Offset, Rect.Top, ((TListBox *)Control)->Items->Strings[Index]); } |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我的TListBox 要讓 Items 顯示自訂的顏色,不想用預設醜醜的藍色, 可是當使用者點選其他的 Items 時,下面的程式碼並不會把前一個反白 重繪過,他還是保持原來的反白,要如何讓前一個被選取的 Items 恢復 正常顏色不會反白?void __fastcall TMainForm::MoveListDrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { int Offset = 2; TCanvas *Canvas=((TListBox*)Control)->Canvas; if( Index != MoveList->ItemIndex ) { MoveList->Canvas->Brush->Color = Color3; Canvas->Font->Color=Index%2? clBlue: clRed; Canvas->FillRect(Rect); } else { Canvas->Brush->Color = Color1; Canvas->Font->Color = FontColor1; Canvas->FillRect(Rect); } Canvas->TextOut(Rect.Left+Offset, Rect.Top, ((TListBox *)Control)->Items->Strings[Index]); } 海星 你好: 請參考以下的做法 (>>>>>>>>>>>>>>>>>>> < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |