투명 PNG 파일 로드하고 화면에 그리기… DarkKaiser, 2010년 3월 3일2023년 9월 4일 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) { bitmap = Bitmap::FromStream(pStream); pStream->Release(); if (bitmap) { if (bitmap->GetLastStatus() != Ok) { delete bitmap; bitmap = NULL; } } } ::GlobalUnlock(hBuffer); } ::GlobalFree(hBuffer); } return bitmap; } C/C++/VC++ PNG투명