void cDefense::DrawAll()
{
HDC hDc = GetDC(m_hWnd);
//获取客户区窗口,如果该值为NULL,GetDC则获整个屏幕的窗口。
HDC dcMem = CreateCompatibleDC(hDc);
//该创建一个与设备兼容的窗口
HBITMAP hBitmap = CreateCompatibleBitmap(hDc,
700,
600);
//创建一个兼容的位图
SelectObject(dcMem, hBitmap);
//把一个对象(位图、画笔、画刷等)选入指定的窗口。新的对象代替同一类型的老对象。
//要把所有的图形绘制到dcMem上
DrawMap(dcMem);
//把dcMem绘制到Dc上
BitBlt(hDc,
0,
0,
700,
600, dcMem,
0,
0, SRCCOPY);
ReleaseDC(m_hWnd, hDc);
DeleteObject(dcMem);
DeleteObject(hBitmap);
}
void cDefense::DrawMap(HDC dcMem)
{
HDC dcTemp;
dcTemp =
CreateCompatibleDC(NULL);
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, L
"images\\maps\\bg.bmp", IMAGE_BITMAP,
0,
0, LR_LOADFROMFILE);
SelectObject(dcTemp, hBitmap);
BITMAP bitInfo;
GetObject(hBitmap, sizeof(BITMAP), &bitInfo);
//得到图像的信息储存到bitInfo中
BitBlt(dcMem,
0,
0, bitInfo.bmWidth, bitInfo.bmHeight, dcTemp,
0,
0, SRCCOPY);
DeleteObject(dcTemp);
DeleteObject(hBitmap);
}
转载于:https://www.cnblogs.com/xiaochi/p/5139047.html
相关资源:截图工具(仿QQ截图,大致功能都已实现)