全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1022
推到 Plurk!
推到 Facebook!

如何在combobox的文字旁多一個小icon呢

缺席
Egn
一般會員


發表:29
回覆:54
積分:16
註冊:2005-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-24 14:58:55 IP:61.230.xxx.xxx 未訂閱
我有看了一下別人的文章,可是還是做不出來ㄝ... void __fastcall TFormMain::ComboBox1DrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { Canvas->FillRect(Rect); ImageList1->Draw(Canvas,2,Rect.Top,Index,true); Rect.Left = Rect.Left ImageList1->Width 4; Canvas->TextOut(Rect.Left,Rect.Top 1,"123"); } 圖片已經載入在imagelist了..可是出來的結果是combobox都是空白的..連字都沒有..
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-24 15:21:23 IP:219.137.xxx.xxx 未訂閱
Egn 您好: 大概是您未將 ComboBox 的 Style 屬性設為 csOwnerDrawFixed 或是 csOwnerDrawVariable。
Egn
一般會員


發表:29
回覆:54
積分:16
註冊:2005-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-24 15:28:00 IP:61.230.xxx.xxx 未訂閱
我有設了還是不行...目前還在偵錯當中...
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-24 16:20:06 IP:219.137.xxx.xxx 未訂閱
將您敘述中 Canvas 的前方全部加上 ComboBox1->,變成 ComboBox1->Canvas,然後再試試看。
Egn
一般會員


發表:29
回覆:54
積分:16
註冊:2005-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-24 16:52:54 IP:61.230.xxx.xxx 未訂閱
現在圖形有出來了,再處理另外一個問題是,我的combobox的item數量不一定,而陷在要在每個item旁邊都加一個小的icon,這個icon是都一樣的...怎樣讓他針對每個item都加icon阿..
chi30
一般會員


發表:5
回覆:17
積分:4
註冊:2005-01-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-24 16:52:51 IP:59.121.xxx.xxx 未訂閱
引言: 我有看了一下別人的文章,可是還是做不出來ㄝ... void __fastcall TFormMain::ComboBox1DrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { Canvas->FillRect(Rect); ImageList1->Draw(Canvas,2,Rect.Top,Index,true); Rect.Left = Rect.Left ImageList1->Width 4; Canvas->TextOut(Rect.Left,Rect.Top 1,"123"); } 圖片已經載入在imagelist了..可是出來的結果是combobox都是空白的..連字都沒有..
你把圖畫到Form的Canvas上了! 要畫在ComboBox上的話, 你必需是對ComboBox1的Canvas做處理. (如RedSnow所說.) YoHo~~~
------
YoHo~~~
Egn
一般會員


發表:29
回覆:54
積分:16
註冊:2005-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-24 17:55:42 IP:61.230.xxx.xxx 未訂閱
而且圖形會重疊..上面跟下面會重疊,結果就不正常了.. void __fastcall TFormMain::ComboBox1DrawItem(TWinControl *Control,       int Index, TRect &Rect, TOwnerDrawState State) {     ImageList1->Draw(ComboBox1->Canvas,Rect.left,Rect.top,Index,true);    for(int i=0;iCount;i ) { ComboBox1->Canvas->TextOut(Rect.left ImageList1[0].Width,Rect.top ImageList1[0].Height,notExistDrive->Strings[i]); } }
系統時間:2024-05-17 10:05:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!