版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
引用MFCGDI(轉(zhuǎn)MFCGDI雙緩沖避免圖形閃爍(轉(zhuǎn)引用MFCGDI(轉(zhuǎn)MFCGDI雙緩沖避免圖形閃爍(轉(zhuǎn)多數(shù)人認(rèn)為MFC的繪圖函數(shù)效率很低,總是想尋求其它的解決方案。MFC的繪加上一些技巧,用MFC可以得到效率很高的繪圖程序。我想就我長(zhǎng)期(呵呵當(dāng)然也只有2年多)使用MFC繪圖的經(jīng)驗(yàn)談?wù)勎业囊恍┯^點(diǎn)。1、顯示的圖形為什么會(huì)閃爍OnDrawOnPaint函數(shù)中,OnDraw在進(jìn)行屏幕OnPaint進(jìn)行調(diào)用的。當(dāng)窗口由于任何原因需要重繪時(shí),總是先用比如:清楚屏幕時(shí)間為1s繪圖時(shí)間也是為1s,這樣在10s內(nèi)的連續(xù)重畫(huà)中就要重畫(huà)只會(huì)閃爍一次。這個(gè)也可以試驗(yàn),在OnDraw(CDC*pDC)中這樣寫(xiě):for(int{pDC-pDC-}2、如何避免閃}2、如何避免閃*staticCBrush*OnEraseBkgnd(CDC*pDC),3、如何實(shí)現(xiàn)雙緩CDCMemDC;//CBitmapMemBitmap;////CBitmap//CBitmappDC-4、如何提高繪圖的法忍受。怎么辦?只有再研究研究MFC的繪圖過(guò)程了。OnDraw(CDC*pDC)中繪制的圖并不法忍受。怎么辦?只有再研究研究MFC的繪圖過(guò)程了。OnDraw(CDC*pDC)中繪制的圖并不是所有都顯示了的,例如:你在OnDraw中畫(huà)了兩個(gè)矩形,在一次重繪中雖然兩個(gè)矩形的繪制函數(shù)都有執(zhí)行,但pDC中的裁剪區(qū)了。因?yàn)轱@示(往MFC設(shè)置的,它已經(jīng)為我們提高了顯示效率,在進(jìn)行復(fù)雜圖形的繪制時(shí)如何進(jìn)一步提高效率呢?那就只有去掉在裁剪區(qū)外的繪圖過(guò)程了??梢韵扔胮DC->GetClipBox()得voidCJhkljklView::OnDraw(CDC*{CJhkljklDoc*pDoc=//TODO:adddrawcodefornativedataintintCPenPOINTfor{}//CClientDCCRgnCBrushargn.CreatePolygonRgn(wfor{}//CClientDCCRgnCBrushargn.CreatePolygonRgn(w,5,1);//pointCPointpDC->FillRgn(&argn,}voidCJhkljklView::OnTimer(UINT{//TODO:Addyourmessagehandlercodehereand/ort}int{if(CView::OnCreate(lpCreateStruct)==-return-//}int{if(CView::OnCreate(lpCreateStruct)==-return-//TODO:Addyourspecializedcreationcodereturn}解決方法利用雙緩沖,首先觸發(fā)WM_ERASEBKGND,然后修改返定義變量CBitmap*m_pBitmapOldBackgroundCBitmapm_bitmapBackgroundCDCif(m_dcBackground.GetSafeHdc()==NULL||(m_bitmapBackground.m_hObject==NULL)){ct.Height());m_pBitmapOldBackground=m_dcBackground.SelectObject(&m_bitmapBackground);//DrawMeterBackground(&m_dcBackground,CBrushbrushFill,//brushFill.CreateSolidBrush(RGB(255,255,ct.Height());m_pBitmapOldBackground=m_dcBackground.SelectObject(&m_bitmapBackground);//DrawMeterBackground(&m_dcBackground,CBrushbrushFill,//brushFill.CreateSolidBrush(RGB(255,255,pBrushOld=}memDC.BitBlt(0,0,rect.Width(),&m_dcBackground,0,0,;intintCPenPOINTfor{}//CClientDCCRgnfor{}//CClientDCCRgnCBrushargn.Crea
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 呼吸系統(tǒng)慢病管理新進(jìn)展
- 智能安全設(shè)備的人性化設(shè)計(jì)
- 機(jī)械安全事故案例
- 第三章 運(yùn)動(dòng)和力的關(guān)系-教材實(shí)驗(yàn)4 探究加速度與力、質(zhì)量的關(guān)系 2025年高考物理基礎(chǔ)專(zhuān)項(xiàng)復(fù)習(xí)
- 3.3.2鹽類(lèi)水解的影響因素及常數(shù) 課件高二上學(xué)期化學(xué)人教版(2019)選擇性必修1
- 智慧園區(qū)產(chǎn)品方案
- 《Excel數(shù)據(jù)獲取與處理實(shí)戰(zhàn)》 課件 陳青 第1、2章 Excel 2016概述、外部數(shù)據(jù)的獲取
- 輿情應(yīng)急演練桌面推演
- 保暖小幫手教案及反思
- 好餓的毛毛蟲(chóng)說(shuō)課稿
- ADAScog(老年癡呆量表—認(rèn)知)
- 熱污染評(píng)價(jià)及標(biāo)準(zhǔn)
- 脫硫檢修方案
- 樂(lè)理試題(音程-三和弦)
- 三資系統(tǒng)操作手冊(cè)
- 綿陽(yáng)市物業(yè)服務(wù)收費(fèi)管理實(shí)施細(xì)則
- 危險(xiǎn)化學(xué)品事故應(yīng)急處置流程圖
- 微信公眾賬號(hào)授權(quán)書(shū)
- 鈑金折彎K因子計(jì)算
- 生石灰(氧化鈣)MSDS
- 中高層管理干部能力提升(劉學(xué)元)ppt課件
評(píng)論
0/150
提交評(píng)論