如何實現雙緩衝、vc雙緩衝

CDC MemDC; //首先定義一個顯示設備對象
CBitmap MemBitmap;//定義一個位圖對象

//隨後建立與屏幕顯示兼容的內存顯示設備
MemDC.CreateCompatibleDC(NULL);
//這時還不能繪圖,因爲沒有地方畫
//下面建立一個與屏幕顯示兼容的位圖,至於位圖的大小嘛,可以用窗口的大小
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();

發佈了7 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章