求救,怎么用HDC完成双缓冲绘图
发布网友
发布时间:2022-04-21 03:59
我来回答
共1个回答
热心网友
时间:2022-06-17 21:10
参考一下这个
CRect rect;//定义一个区域
GetClientRect(&rect);//要画的区域
CDC memdc; //画布对象
CBitmap bitmap; //内存位图
memdc.CreateCompatibleDC(pDC); //创建与显示设备兼容的位图
bitmap.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height()); //加载位图
CBitmap *pOldBit=memdc.SelectObject(&bitmap); //将位图选入设备
memdc.FillSolidRect(0,0,rect.Width(),rect.Height(),RGB(255,255,255));
//绘图
//如果在memdc这个DC里画东西,可以看见,而你用pDC->来画的话,是看不见的。
while(ii<200){ii++;
memdc.MoveTo(0,0);
memdc.LineTo(100+ii,100);
}
//释放资源
pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memdc, 0, 0, SRCCOPY);
bitmap.DeleteObject(); //释放位图
memdc.DeleteDC(); //释放内存画布
ReleaseDC(pDC); //这个看情况
记得把背景去掉