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

關於截取圖示的問題

缺席
remmurds
一般會員


發表:17
回覆:14
積分:16
註冊:2006-10-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-02 12:07:39 IP:140.130.xxx.xxx 訂閱
[code cpp]
SHFILEINFO info;

ImageList->Handle = SHGetFileInfo(FileName.c_str(), 0, &info, sizeof(info), SHGFI_LARGEICON | SHGFI_SYSICONINDEX);
ImageList->ShareImages = true;
ImageList->GetIcon(info.iIcon, ImageIco->Picture->Icon);
[/code]

我用了上述這段程式來擷取某個檔案的Icon並在一個Image上顯示出來
但擷取出來的圖示都只有32*32的大小
而不是原本的48*48(如果是小圖示則沒問題)
縱使我將Image跟ImageList的Height和Width都設成48也一樣
請問是哪裡出了問題呢?
------
隨筆網誌: http://reassert.blogspot.com
附加檔案:47522f8b2dd85_GetIcon.rar
kagaya
中階會員


發表:74
回覆:175
積分:59
註冊:2002-12-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-03 10:39:27 IP:211.21.xxx.xxx 訂閱
------
KUSO 無處不在
remmurds
一般會員


發表:17
回覆:14
積分:16
註冊:2006-10-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-04 05:13:18 IP:140.130.xxx.xxx 訂閱
後來我試過使用DrawIconEx

並把程式改成如下:


[code cpp]

SHGetFileInfo(FileName.c_str(), 0, &info, sizeof(info), SHGFI_ICON);

DrawIconEx(ImageIco->Canvas->Handle, 0, 0, info.hIcon, 48, 48, 0, 0, DI_NORMAL | DI_COMPAT);

[/code]

確實是畫出48*48的Icon了

可是畫出來的結果卻是嚴重失真

馬賽克十分嚴重

而不是從Explorer看到的那樣細緻
------
隨筆網誌: http://reassert.blogspot.com
kagaya
中階會員


發表:74
回覆:175
積分:59
註冊:2002-12-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-12-04 09:34:48 IP:211.21.xxx.xxx 訂閱
你把32的放大到48 當然會失真
這一篇裡
http://www.virtualplastic.net/msgboard/thread.php?forum=2&thread=90
有寫到
SHGFI_ICON and SHGFI_PIDL
試試看吧
------
KUSO 無處不在
系統時間:2024-03-29 20:05:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!