以下代码是在MFC单文档中的一个简单测试双缓存技术的代码
/*双缓存的第一步,建立兼容的设备上下文*/
CDC memdc;//创建一个设备上下文对象
memdc.CreateCompatibleDC(pDC);//这个设备兼容当前DC
/*双缓存的第二步,在前台的设备上下文中建立位图对象,并选入到兼容的设备上下文*/
CBitmap MemBitmap;//定义一个位图对象
MemBitmap.CreateCompatibleBitmap(&memdc,1000,1000); //创建一个位图对象,该位图对象的大小,决定了兼容设备上下文的大小
//MemBitmap.CreateCompatibleBitmap(pDC,1000,1000); 这样也行
CBitmap *pOldBit=memdc.SelectObject(&MemBitmap);//把该位图对象选入到兼容设备上下文
//memdc.FillSolidRect(0,0,200,200,RGB(255,255,255)); //用指定颜色清除位图对象,注意如果是黑色的话,会被其默认的颜色挡掉
CBrush brush;
brush.CreateSolidBrush(RGB(255,255,255));
CRect rect;
GetClientRect(&rect);
memdc.FillRect(&rect,&brush);//用指定颜色清除位图对象
/*双缓存第三步,在兼容的设备上下文画图,并把指定大小的兼容设备上下文拷贝到前台设备上下文显示*/
memdc.MoveTo(100,100);
memdc.LineTo(1000,1000);
pDC->BitBlt(0,0,800,600,&memdc,0,0,SRCCOPY);//拷贝到前台显示