關於截取圖示的問題 |
缺席
|
remmurds
一般會員 發表:17 回覆:14 積分:16 註冊:2006-10-29 發送簡訊給我 |
[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 |
kagaya
中階會員 發表:74 回覆:175 積分:59 註冊:2002-12-28 發送簡訊給我 |
------
KUSO 無處不在 |
remmurds
一般會員 發表:17 回覆:14 積分:16 註冊:2006-10-29 發送簡訊給我 |
後來我試過使用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 發送簡訊給我 |
你把32的放大到48 當然會失真
這一篇裡 http://www.virtualplastic.net/msgboard/thread.php?forum=2&thread=90 有寫到 SHGFI_ICON and SHGFI_PIDL 試試看吧
------
KUSO 無處不在 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |