19,468
社区成员
发帖
与我相关
我的任务
分享
HDC hdc;
PAINTSTRUCT ps;
hdc = ::BeginPaint(m_hWnd, &ps);
Graphics grap(hdc);
Bitmap pBitmap(NULL, MAKEINTRESOURCE(IDB_ALPHA));
grap.DrawImage(&pBitmap, 10, 10);
::EndPaint(m_hWnd, &ps);
void CUSDLG::OnPaint()
{
CPaintDC dc(this);
Graphics graphics(dc.m_hDC);
HINSTANCE hInstance = ::AfxGetResourceHandle();
Bitmap bitmap(hInstance, MAKEINTRESOURCEW(IDB_HUT));
CachedBitmap CbtMap(&bitmap,&graphics);
graphics.DrawCachedBitmap(&CbtMap,20,20);
}
BOOL YourProjectApp::ImageFromIDResource(UINT nID, LPCTSTR sTR,Image * &pImg)
{
HINSTANCE hInst = AfxGetResourceHandle();
HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),sTR); // type
if (!hRsrc)
return FALSE;
// load resource into memory
DWORD len = SizeofResource(hInst, hRsrc);
BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);
if (!lpRsrc)
return FALSE;
// Allocate global memory on which to create stream
HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len);
BYTE* pmem = (BYTE*)GlobalLock(m_hMem);
memcpy(pmem,lpRsrc,len);
GlobalUnlock(m_hMem);
IStream* pstm;
CreateStreamOnHGlobal(m_hMem,FALSE,&pstm);
// load from stream
pImg=Gdiplus::Image::FromStream(pstm);
// free/release stuff
pstm->Release();
FreeResource(lpRsrc);
GlobalFree(m_hMem);
return TRUE;
}
if (m_pBitmap)
{
::delete m_pBitmap;
m_pBitmap = NULL;
}
Image *pImage=NULL;
USES_CONVERSION;
#ifdef UNICODE
pImage = Image::FromFile(strPicName);//从文件加载图片
#else
pImage= Image::FromFile(A2W(strPicName));
#endif
if (pImage)
{
int nWidth = pImage->GetWidth(),nHeight = pImage->GetHeight();
m_pBitmap = ::new Bitmap(nWidth,nHeight);
Graphics graphicsBitmap(pImage);
graphicsBitmap.DrawImage(pImage,RectF(0,0,nWidth,nHeight),0,0,nWidth,nHeight,UnitPixel);
SAFE_DELETE(pImage);
graphicsBitmap.ReleaseHDC(NULL);
}
if(m_pBitmap)
{
HDC hHdc = GetDC()->m_hDC;
Graphics graphics(hHdc);
int nWidth = m_pBitmap->GetWidth(),nHeight = m_pBitmap->GetHeight();
graphics.DrawImage(m_pBitmap,RectF(0,0,nWidth,nHeight),0,0,nWidth,nHeight,UnitPixel);
graphics.ReleaseHDC(hHdc);
}