这下有了CImage类,处理其他类型的图片不再寻找第三方类库了。加载到对话框背景的代码如下:\
//
从资源里载入背景JPEG图片
HRSRC hRsrc
=
::FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDR_JPG1),
_T(
"
JPG
"
));
if
(hRsrc
!=
NULL)
...
{
HGLOBAL hImgData=::LoadResource(AfxGetResourceHandle(),hRsrc);
if(hImgData==NULL)
...{
::FreeResource(hImgData);
}
else
...{
LPVOID lpVoid = ::LockResource(hImgData);
LPSTREAM pStream=NULL;
DWORD dwSize = ::SizeofResource(AfxGetResourceHandle(), hRsrc);
HGLOBAL hNew = ::GlobalAlloc(GHND, dwSize);
LPBYTE lpByte = (LPBYTE)::GlobalLock(hNew);
::memcpy(lpByte, lpVoid, dwSize);
GlobalUnlock(hNew);
HRESULT ht = CreateStreamOnHGlobal(hNew, TRUE, &pStream);
if( ht != S_OK )
...{
//ASSERT( FALSE );
GlobalFree(hNew);
}
else
...{
m_imgBK.Load(pStream);
GlobalFree(hNew);
}
::FreeResource(hImgData);
}
}
//
m_imgBK.Load("hh.jpg");
//
这个方法可以载入文件
处理消息OnEraseBkgnd,
BOOL CDlgCfg::OnEraseBkgnd(CDC* pDC)
{
m_imgBK.Draw(pDC->GetSafeHdc(),0,0,500,500,0,900,500,500);
return TRUE;
//CDialog::OnEraseBkgnd(pDC);
}