win32编程 画图

it2022-05-05  111

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截图,大致功能都已实现)

最新回复(0)