何をしても、アイコンの周りに白/黒の境界線が表示されます...何が得られますか?!
これを正しく行うことさえ可能ですか?HICON を透明な GDI+ ビットマップにコピーするにはどうすればよいですか?
何をしても、アイコンの周りに白/黒の境界線が表示されます...何が得られますか?!
これを正しく行うことさえ可能ですか?HICON を透明な GDI+ ビットマップにコピーするにはどうすればよいですか?
私はそれに数時間を無駄にしました。
以前に何度も無駄にしたことと相まって、はい、イライラします.
GDI+ に問題があることがわかりました。回避策はこちらです。ここに役立つかもしれないいくつかのコードがあります:
HICON hIcon = ...;
ICONINFO ii; GetIconInfo(hIcon, &ii);
BITMAP bmp; GetObject(ii.hbmColor, sizeof(bmp), &bmp);
Gdiplus::Bitmap temp(ii.hbmColor, NULL);
Gdiplus::BitmapData lockedBitmapData;
Gdiplus::Rect rc(0, 0, temp.GetWidth(), temp.GetHeight());
temp.LockBits(&rc, Gdiplus::ImageLockModeRead, temp.GetPixelFormat(), &lockedBitmapData);
Gdiplus::Bitmap image(
lockedBitmapData.Width, lockedBitmapData.Height, lockedBitmapData.Stride,
PixelFormat32bppARGB, reinterpret_cast<BYTE *>(lockedBitmapData.Scan0));
temp.UnlockBits(&lockedBitmapData);
// Now 'image' has the icon, with transparency