閃爍的解決方法

2021-04-23 11:52:35 字數 825 閱讀 8021

首先給出實現的程式,然後再解釋,同樣是在ondraw(cdc *pdc)中:

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();

要簡單也可以過載onerasebkgnd(cdc* pdc)直接返回true

C 控制項開發的閃爍問題和解決方法總結

最近對 作了一些優化,試驗後效果還可以,但是發現介面會閃爍,具體是treeview控制項會閃爍,語言為c ide為vs2005。在查閱一些資料,使用了一些基本技術後 如開啟雙緩衝 發現沒什麼效果。於是使用profiler工具,查詢出瓶頸在於每次更新完介面的endupdate操作 使用這個是為了減少介...

C 控制項的閃爍問題解決方法總結

最近對 作了一些優化,試驗後效果還可以,但是發現介面會閃爍,具體是treeview控制項會閃爍,語言為c ide為vs2005。在查閱一些資料,使用了一些基本技術後 如開啟雙緩衝 發現沒什麼效果。於是使用profiler工具,查詢出瓶頸在於每次更新完介面的endupdate操作 使用這個是為了減少介...

MFC中螢幕重新整理閃爍問題解決方法總結

在mfc中經常遇到螢幕重新整理的問題,下面是幾種解決方法。重新整理整個程式區域,有明顯的閃爍情況 invalidate true updatewindow 重新整理指定區域,該區域有閃爍情況,不過比上一種方法要好多了。invalidaterect m rect,true 0 updatewindow...