GDI+를 이용하여 PNG 파일을 로드하고 화면에 그리는 방법…

// PNG 드로잉
Graphics G2(dc.GetSafeHdc());
G2.DrawImage( m_bitmap, 60, 60 , m_bitmap->GetWidth(), m_bitmap->GetHeight() );
// PNG 파일 로드
Bitmap* Cpng_test1Dlg::PngFromResource(IN HINSTANCE hInst, IN const LPTSTR pName, IN const LPTSTR pType )
{
Bitmap* bitmap = NULL;
HRSRC hResource = ::FindResource(hInst, pName, pType);
if (!hResource) return NULL;

DWORD imageSize = ::SizeofResource(hInst, hResource);
if (!imageSize) return NULL;

const void* pResourceData = ::LockResource(::LoadResource(hInst, hResource));
if (!pResourceData) return NULL;

HGLOBAL hBuffer = ::GlobalAlloc(GMEM_MOVEABLE, imageSize);
if (hBuffer)
{
void* pBuffer = ::GlobalLock(hBuffer);
if (pBuffer)
{
CopyMemory(pBuffer, pResourceData, imageSize);

IStream* pStream = NULL;
if (::CreateStreamOnHGlobal(hBuffer, FALSE, &pStream) == S_OK)
Read More