<span style="font-size:14px;">BOOL LayeredDlg::LoadImages(UINT nID, CString strType, Gdiplus::Bitmap * &pImg)
{
//获取程序实例句柄柄
HINSTANCE hInst = AfxGetResourceHandle();
//获取资源的位置与指定的类型和名称指定的模块
HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),strType);
if (!hRsrc)
{
return FALSE;
}
//获取资源长度
DWORD len = SizeofResource(hInst, hRsrc);
//将指定的资源加载到变量
BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);
if (!lpRsrc)
{
return FALSE;
}
//堆中分配内存
HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len);
//锁定内存块
BYTE* pmem = (BYTE*)GlobalLock(m_hMem);
//填充内存块
memcpy(pmem,lpRsrc,len);
//数据流对象
IStream* pstm;
//创建数据流
CreateStreamOnHGlobal(m_hMem,FALSE,&pstm);
//GDI+Bitmap创建数据流
pImg=Gdiplus::Bitmap::FromStream(pstm);
//解锁内存块
GlobalUnlock(m_hMem);
//释放内存
pstm->Release();
FreeResource(lpRsrc);
return TRUE;
}
</span>
GDI+从资源文件载入图像-
最新推荐文章于 2020-08-05 16:07:39 发布