//直接贴代码了,有不明白的函数,可以自己搜索一下
/*FindResource函数
*/
CImage orgImg;//此类在VS2010自带,VC6.0不存在
void Load(UINT BkID)
{
HINSTANCE hInst = AfxGetResourceHandle();
HRSRC hResrc = ::FindResource(hInst,MAKEINTRESOURCE(BkID),_T("PNG"));
if (hResrc == NULL)
return;
//讲资源加载到内存中
DWORD len = SizeofResource(hInst, hResrc);
BYTE* lpResrc = (BYTE*)LoadResource(hInst, hResrc);
if (lpResrc == NULL)
return;
//为流申请资源
HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len);
BYTE* pmem = (BYTE*)GlobalLock(m_hMem);
memcpy(pmem,lpResrc,len);
IStream* pstm;
CreateStreamOnHGlobal(m_hMem,FALSE,&pstm);
//加载流
orgImg.Load(pstm);
}
//释放资源
在结束程序后
GlobalUnlock(m_hMem);
GlobalFree(m_hMem);
pstm->Release();
FreeResource(lpResrc);