从C ++中的字节数组创建HICON? [英] Creating an HICON from a byte array in C++?

查看:97
本文介绍了从C ++中的字节数组创建HICON?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a PNG-encoded icon as a byte array in memory. What is the recommended way of creating an HICON object from this byte array?

如果你知道一个没有解决方案的虚拟奖励积分ATL或GDI + ...:)

Imaginary bonus points if you know a solution without ATL or GDI+... :)

推荐答案

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();

这篇关于从C ++中的字节数组创建HICON?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆