我有一个PNG编码的图标作为内存中的字节数组。从这个字节数组创建HICON对象的推荐方法是什么?
如果您知道没有ATL或GDI +的解决方案,可以获得虚构的奖励......:)
答案 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。不要问我代码,因为我并不熟悉这种低级图形。