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

TListView 可以切換使用兩個不同維度的 ImageList 嗎?

尚未結案
Jack222
一般會員


發表:9
回覆:8
積分:3
註冊:2004-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-10 18:47:57 IP:61.222.xxx.xxx 未訂閱
TListView 的 ViewStyle 為 vsReport, 先指定一個維度 14x14 的 ImageList 給 SmallImage, 這是為了顯示在 Column Title 和 Item 的左方用的; 另外, 我想在 Item 右方的 SubItem 顯示 80x14 的圖案, 所以又再建了一個 80x14 的 ImageList, 本來是想用切換 ImageList 的方式, 不料顯示 80x14 的圖時, 還是會影響到 Item 左方的空白, 其會由寬度 14 變為 80; 後來我想說直接用 DrawSubItem 的方式自己畫(Load a bitmap file), 不過還是不盡理想, 不僅其它 SubItem 的文字字型受到影響, 當 Column 寬度改變時, 還會有殘影的問題, 以下是我畫 SubItem 的部分程式: void __fastcall TfrmmTunes::lvCustomDrawSubItem(TCustomListView *Sender, TListItem *Item, int SubItem, TCustomDrawState State, bool &DefaultDraw) { // the SubItem we want to draw if(ColumnOrderWidth[SubItem].ColCaption == S_RATING) { DefaultDraw = false; TCanvas *pCanvas = ((TListView *)Sender)->Canvas; int X = 0, Y = Item->Position.y; for(int i=0; i < SubItem; i加加) // Locate X coordinate X 加= ((TListView *)Sender)->Column[i]->Width; TRect Rclear = Bounds( X, Y, ((TListView *)Sender)->Column[SubItem]->Width, ((TListView *)Sender)->Font->Height); pCanvas->FillRect(Rclear); // Clear first Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); pBitmap->LoadFromFile("D:\\BCB\\TEST\\Rating5.bmp"); TRect Rbitmap = Bounds( 0, 0, ((TListView *)Sender)->Column[SubItem]->Width, ((TListView *)Sender)->Font->Height); TRect Rbitmap_area = Bounds( X, Y, ((TListView *)Sender)->Column[SubItem]->Width, ((TListView *)Sender)->Font->Height); pCanvas->BrushCopy( Rbitmap_area, pBitmap, Rbitmap, clWhite); delete pBitmap; } } 不知是否有好方法可解此問題? 謝謝! 發表人 - Jack222 於 2005/03/10 18:59:00 發表人 - Jack222 於 2005/03/10 19:10:11
系統時間:2024-05-03 7:13:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!