VC GDI雙緩衝機制繪圖防螢幕閃爍實現步驟
引用:http://blog.csdn.net/xgx198831/article/details/8268731
在OnDraw(CDC* pDC) 中新增如下程式碼
CDC MemDC; //首先定義一個顯示裝置物件
CBitmap MemBitmap;//定義一個位圖物件
//隨後建立與螢幕顯示相容的記憶體顯示裝置
MemDC.CreateCompatibleDC(NULL);
//這時還不能繪圖,因為沒有地方畫 ^_^
//下面建立一個與螢幕顯示相容的點陣圖,至於點陣圖的大小嘛,可以用視窗的大小,也可以自己定義(如:有滾動條時就要大於當前視窗的大小,在BitBlt時決定拷貝記憶體的哪部分到螢幕上)
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//將點陣圖選入到記憶體顯示裝置中
//只有選入了點陣圖的記憶體顯示裝置才有地方繪圖,畫到指定的點陣圖上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色將點陣圖清除乾淨,這裡我用的是白色作為背景
//你也可以用自己應該用的顏色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
//繪圖
MemDC.MoveTo(……);
MemDC.LineTo(……);
//將記憶體中的圖拷貝到螢幕上進行顯示
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//繪圖完成後的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();