从C ++中的字节数组创建HICON?

时间:2009-12-17 15:09:23

标签: c++ icons

我有一个PNG编码的图标作为内存中的字节数组。从这个字节数组创建HICON对象的推荐方法是什么?


如果您知道没有ATL或GDI +的解决方案,可以获得虚构的奖励......:)

2 个答案:

答案 0 :(得分:3)

HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, dataSize);
LPVOID pImage = GlobalLock(hMem);
memcpy(pImage, pngData, dataSize);
GlobalUnlock(hMem);

ATL::CComPtr<IStream> pStream;
CreateStreamOnHGlobal(hMem, TRUE, &pStream);

Gdiplus::Bitmap *pBitmap = new Gdiplus::Bitmap(pStream);
HICON YOUR_HICON = pBitmap->GetHICON();

答案 1 :(得分:0)

看起来你可以使用CreateBitmap和CreateIconIndirect,或者甚至只是CreateIcon。不要问我代码,因为我并不熟悉这种低级图形。