有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享VC显示双缓冲吧。
【 tulaoshi.com - 编程语言 】
当应用程序中使用多次GDI调用绘制到窗口中时,在窗口清除并被重新绘制时,会出现明显的闪烁。使用双缓冲技术可轻松消除闪烁。
步骤如下:
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)1、假设当前显示设备上下文为CDC * pDC;
2、使用CDC对象创建可兼容设备上下文,
CDC memdc;
memdc.CreateCompatibleDC(pDC);
3、使用CBitmap对象创建可兼容为图,
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC,SCREEN_WIDTH,SCREEN_HEIGHT);
4、将CBitmap对象选入CDC对象中,
CBitmap *poldbmp=memdc.SelectObject(&bmp);
5、绘图操作,在memdc中进行,如:
for(int i=0;iN;i++)
{
memdc.MoveTo(i,0);
memdc.LintTo(i,N);
}
Rectangle(hdcMem,0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
DrawMenuButton(hdcMem);
6、使用BitBlt函数将memdc内容拷贝至pDC
pDC-BitBlt(0,0,SCREEN_WIDTH,SCREEN_HEIGHT,&memdc,0,0,SRCCOPY);
7、最后别忘了,
memdc.SelectObject(poldbmp);
来源:http://www.tulaoshi.com/n/20160219/1622971.html