简单来说其基本的概念:专门设定一个暂时存储图形信息的内存,将所有暂时的画图内容先放到暂存CDC中,然后再放入完所有的以后调用.
具体实现步骤
1.首先是定义一个暂时的设备上下文CDC h_BufDC; // 双缓冲层
CBitmap memBitmap; //定义一个位图对象
2.然后对其进行初始化
CDC *pDC = GetDC();
h_BufDC.CreateCompatibleDC(pDC);
memBitmap.CreateCompatibleBitmap( pDC, SCREEN_W, SCREEN_H);
SelectObject(h_BufDC,memBitmap);
h_BufDC.FillSolidRect( 0, 0, SCREEN_W, SCREEN_H, RGB(255, 255, 255) );
3.操作
//
....中间可以将所需要的画图等其他的操作放到h_BufDC中去做//
4.接着使用显示
CDC *pDC = GetDC();//获得显示器设备上下文,用于最终的显示
pDC->BitBlt( 0, 0, SCREEN_W, SCREEN_H, &h_BufDC, 0, 0, SRCCOPY );//将暂存内容复制到显示器设备上下文中,从而显示
5.最后释放掉
memBitmap.DeleteObject(); //删除位图对象
h_BufDC.DeleteDC(); //删除缓冲dc