解析在WTL下使用雙緩沖的實(shí)現(xiàn)方法
更新時(shí)間:2013年05月17日 16:20:00 作者:
本篇文章是對(duì)在WTL下使用雙緩沖的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
使用WTL的CDoubleBufferImpl類(lèi)可以方便的實(shí)現(xiàn)雙緩沖,而不必自己實(shí)現(xiàn)繁瑣的代碼,不僅可以繪制一般窗口,也可以繪制對(duì)話(huà)框的背景等。
首先 #include <atlframe.h>
其次需要雙緩沖畫(huà)圖的類(lèi)需要派生自CDoubleBufferImpl<>:
class CMainDlg : public CDialogImpl<CMainDlg>, public CDoubleBufferImpl<CMainDlg>{}
然后消息鏈中加入
BEGIN_MSG_MAP_EX(CMainDlg)
//....
CHAIN_MSG_MAP(CDoubleBufferImpl<CMainDlg>)
END_MSG_MAP()
最后寫(xiě)DoPaint函數(shù),直接畫(huà)就可以了
void DoPaint(CDCHandle dc)
{ //畫(huà)個(gè)矩形
dc.Rectangle(0, 0, 10, 10);
}
成了。
注意,由于CDoubleBufferImpl類(lèi)響應(yīng)了WM_PAINT消息和WM_ERASEBKGND消息,因此,自己的類(lèi)中不必再響應(yīng)。
首先 #include <atlframe.h>
其次需要雙緩沖畫(huà)圖的類(lèi)需要派生自CDoubleBufferImpl<>:
class CMainDlg : public CDialogImpl<CMainDlg>, public CDoubleBufferImpl<CMainDlg>{}
然后消息鏈中加入
BEGIN_MSG_MAP_EX(CMainDlg)
//....
CHAIN_MSG_MAP(CDoubleBufferImpl<CMainDlg>)
END_MSG_MAP()
最后寫(xiě)DoPaint函數(shù),直接畫(huà)就可以了
void DoPaint(CDCHandle dc)
{ //畫(huà)個(gè)矩形
dc.Rectangle(0, 0, 10, 10);
}
成了。
注意,由于CDoubleBufferImpl類(lèi)響應(yīng)了WM_PAINT消息和WM_ERASEBKGND消息,因此,自己的類(lèi)中不必再響應(yīng)。
相關(guān)文章
C語(yǔ)言 makefile學(xué)習(xí)及實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了C語(yǔ)言 makefile學(xué)習(xí)及實(shí)現(xiàn)實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03
C語(yǔ)言實(shí)現(xiàn)關(guān)機(jī)小程序
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)關(guān)機(jī)小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
C++實(shí)現(xiàn)圖書(shū)管理系統(tǒng)(文件操作與類(lèi))
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C語(yǔ)言實(shí)現(xiàn)生成新春福字的示例詳解
這篇文章主要介紹了如何利用C語(yǔ)言實(shí)現(xiàn)生成各個(gè)字體的新春福字,再也不用擔(dān)心支付寶掃福找不到圖片了,感興趣的同學(xué)可以跟隨小編學(xué)習(xí)一下2022-01-01

