亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

MFC中重寫OnPaint實現雙緩沖繪圖

2019-11-14 09:56:51
字體:
來源:轉載
供稿:網友

在VC/MFC用CDC繪圖時,頻繁的刷新,屏幕會出現閃爍的現象,CPU時間占用率相當高,繪圖效率極低,很容易出現程序崩潰。

在圖形圖象處理編程過程中,雙緩沖是一種基本的技術。我們知道,如果窗體在響應WM_PAINT消息的時候要進行復雜的圖形處理,那么窗體在重繪時由于過頻的刷新而引起閃爍現象。解決這一問題的有效方法就是雙緩沖技術。

因為窗體在刷新時,總要有一個擦除原來圖象的過程OnEraseBkgnd,它利用背景色填充窗體繪圖區,然后在調用新的繪圖代碼進行重繪,這樣一擦一寫造成了圖象顏色的反差。當WM_PAINT的響應很頻繁的時候,這種反差也就越發明顯。于是我們就看到了閃爍現象。

我們會很自然的想到,避免背景色的填充是最直接的辦法。但是那樣的話,窗體上會變的一團糟。因為每次繪制圖象的時候都沒有將原來的圖象清除,造成了圖象的殘留,于是窗體重繪時,畫面往往會變的亂七八糟。所以單純的禁止背景重繪是不夠的。我們還要進行重新繪圖,但要求速度很快,于是我們想到了使用BitBlt函數。它可以支持圖形塊的復制,速度很快。我們可以先在內存中作圖,然后用此函數將做好的圖復制到前臺,同時禁止背景刷新,這樣就消除了閃爍。

當啟用雙緩沖時,所有繪制操作首先呈現到內存緩沖區,而不是屏幕上的繪圖圖面。所有繪制操作完成后,內存緩沖區直接復制到與其關聯的繪圖圖面。基于這樣的操作不是直接操作繪圖區域,而是操作內存中繪圖,因而從人眼看到的畫面角度閃爍會緩解很多。

雙緩存繪圖思路: 1.創建內存DC。 2.創建Bitmap用來作為畫圖的畫布。(如果用物理DC去創建可以畫彩色圖,如果用內存DC是黑白的) 3.把Bitmap選入內存DC中。 4.進行畫圖。(可以把圖片畫在bitmap上,作為背景,也可以通過,MoveTo,LineTo等進行畫) 5.把內存DC上的內容復制到物理DC上。 6.關閉DC連接,清理創建的內存DC和Bitmap。 注意: 1.內存DC如果和物理DC大小一致的話不用進行縮放,如果是不一致的話還要進行縮放處理。縮放與否使用BitBlt和StretchBlt方法,一個是可以縮放的。這里不展開。 2.注意關閉DC連接,否則很容易造成資源泄露。尤其是GDI資源。

以下代碼基于OnPaint函數:

CPaintDC dc(this); CRect rectClient; CDC dcMem,dcBkgnd; CBitmap bitmapTemp, *pOldBitmap; GetClientRect(&rectClient);//獲取窗口信息 bitmapTemp.CreateCompatibleBitmap(&dc, rectClient.Width(), rectClient.Height());//創建內存位圖 dcMem.CreateCompatibelBitmap(&dc); //依附窗口DC創建兼容的DC pOldBitmap = dcMem.SelectObject(&bitmapTemp);//將內存位圖選入內存dc //填充顏色 dcMem.FillSolidRect(rectClient,RGB(255,125,0)); //填充顏色 /* 各種繪圖操作在這里進行 */ dc.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), &dcMem, 0, 0, SRCCOPY);//繪制圖片到主dc dcMem.SelectObject(pOldBitmap);//清理

BitBlt函數說明:

函數原型

BOOL BitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWord dwRop);

參數 hdcDest:指向目標設備環境的句柄。 nXDest:指定目標矩形區域左上角的X軸邏輯坐標。 nYDest:指定目標矩形區域左上角的Y軸邏輯坐標。 nWidth:指定源和目標矩形區域的邏輯寬度。 nHeight:指定源和目標矩形區域的邏輯高度。 hdcSrc:指向源設備環境的句柄。 nXSrc:指定源矩形區域左上角的X軸邏輯坐標。 nYSrc:指定源矩形區域左上角的Y軸邏輯坐標。 dwRop:指定光柵操作代碼。這些代碼將定義源矩形區域的顏色數據,如何與目標矩形區域的顏色數據組合以完成最后的顏色。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲福利影片在线| 色黄久久久久久| 久久久精品影院| 成人福利免费观看| 亚洲欧美变态国产另类| 毛片精品免费在线观看| 美女999久久久精品视频| 国内精品中文字幕| 欧美另类精品xxxx孕妇| 一个人看的www久久| 亚洲欧洲一区二区三区在线观看| 久久久精品一区| 亚洲国内精品在线| 中文字幕日韩欧美在线| 国产999精品久久久影片官网| 伊人伊成久久人综合网小说| 欧美极品美女视频网站在线观看免费| 久久香蕉精品香蕉| 久久久久国产一区二区三区| 热re99久久精品国产66热| 国产精品丝袜久久久久久高清| 久久成人人人人精品欧| 91精品国产色综合久久不卡98| 欧美激情在线有限公司| 久久国产视频网站| 国产精品美女主播在线观看纯欲| 98精品国产自产在线观看| 欧美性资源免费| 欧美在线性爱视频| 91精品国产91久久久久久久久| 日韩精品免费观看| 日韩成人高清在线| 久久亚洲精品一区二区| 91久久精品日日躁夜夜躁国产| www欧美xxxx| 欧美日韩成人免费| 97碰碰碰免费色视频| 亲子乱一区二区三区电影| 久久成年人视频| 欧美人在线视频| 992tv成人免费影院| 色伦专区97中文字幕| www.久久草.com| 中日韩美女免费视频网站在线观看| 九九热视频这里只有精品| 亚洲a成v人在线观看| www.久久撸.com| 91亚洲精品一区| 亚洲欧洲在线观看| 亚洲国产精品成人va在线观看| 欧美专区国产专区| 亚洲欧美精品suv| 国产欧美在线观看| 国产97色在线|日韩| 国产丝袜精品第一页| 69视频在线播放| 欧美一级大片在线免费观看| 久久精品国产一区| 欧美国产日韩在线| 中文字幕久精品免费视频| 在线视频欧美日韩精品| 亚洲第一男人av| 热门国产精品亚洲第一区在线| 日本欧美一二三区| 国产精品夫妻激情| 亚洲第一页自拍| 国内成人精品视频| 91精品久久久久久久久| 日韩成人在线免费观看| 亚洲精品在线视频| 91国产精品视频在线| 97视频在线观看成人| 久久影视免费观看| 国产精品极品尤物在线观看| 欧美成人午夜视频| 欧美精品国产精品日韩精品| 在线视频一区二区| 亚洲精品视频免费| 国产精品久久一| 永久555www成人免费| 国产亚洲人成a一在线v站| 91黑丝在线观看| 精品毛片网大全| 欧美又大又硬又粗bbbbb| 亚洲天天在线日亚洲洲精| 国产精品久久久久久av福利软件| 欧美疯狂xxxx大交乱88av| 九色精品免费永久在线| 日韩亚洲国产中文字幕| 一区二区在线免费视频| 亚洲mm色国产网站| 亚洲日本成人女熟在线观看| 免费av一区二区| 久久久免费电影| 欧美性受xxxx黑人猛交| 精品福利在线看| 精品久久久久久中文字幕大豆网| 91精品国产综合久久香蕉922| 亚洲欧洲免费视频| 亚州精品天堂中文字幕| 久久精品99久久久久久久久| 亚洲综合在线播放| 精品激情国产视频| 91精品免费视频| 亚洲国产精品成人va在线观看| 欧美日韩国产精品一区二区不卡中文| 国产99久久精品一区二区 夜夜躁日日躁| 欧美午夜影院在线视频| 2019精品视频| 精品日本高清在线播放| 欧美性在线视频| 成人日韩av在线| 97精品伊人久久久大香线蕉| 国产成人97精品免费看片| 国产91色在线|免| 国产精品中文字幕在线| 欧美一级视频一区二区| 国产在线精品成人一区二区三区| 亚洲永久免费观看| 81精品国产乱码久久久久久| 美日韩丰满少妇在线观看| 日韩中文字幕国产精品| 久久久亚洲福利精品午夜| 日韩美女免费线视频| 国内精品久久久久久久久| 亚洲国产97在线精品一区| 日本最新高清不卡中文字幕| 久久成人精品视频| 色综合天天综合网国产成人网| 国产偷亚洲偷欧美偷精品| 色777狠狠综合秋免鲁丝| 亚洲人成在线一二| 国产日韩中文在线| 免费不卡在线观看av| 国产一区二区香蕉| 久久国产精品久久久| 久久天天躁夜夜躁狠狠躁2022| 国产精品一区二区三区久久久| 欧美成aaa人片免费看| 日本韩国欧美精品大片卡二| 亚洲免费视频一区二区| www.亚洲人.com| 亚洲色无码播放| 国产精品一区二区av影院萌芽| 69av在线播放| 成人a在线视频| 日本精品久久久久影院| 欧美精品性视频| 中文字幕一区二区精品| 97高清免费视频| 国产一区av在线| 欧美成人国产va精品日本一级| 日韩成人网免费视频| 亚洲国产成人爱av在线播放| 免费91麻豆精品国产自产在线观看| 国产精品扒开腿做爽爽爽男男| 国产精品吹潮在线观看| 久久亚洲国产成人| 91av免费观看91av精品在线| 久久久久久久久久久免费精品| 精品国产91乱高清在线观看| 91欧美精品成人综合在线观看| 午夜精品久久久99热福利| 国产精品一区二区女厕厕|