解析在WTL下使用雙緩沖的實現(xiàn)方法
更新時間:2013年05月17日 16:20:00 作者:
本篇文章是對在WTL下使用雙緩沖的實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下
使用WTL的CDoubleBufferImpl類可以方便的實現(xiàn)雙緩沖,而不必自己實現(xiàn)繁瑣的代碼,不僅可以繪制一般窗口,也可以繪制對話框的背景等。
首先 #include <atlframe.h>
其次需要雙緩沖畫圖的類需要派生自CDoubleBufferImpl<>:
class CMainDlg : public CDialogImpl<CMainDlg>, public CDoubleBufferImpl<CMainDlg>{}
然后消息鏈中加入
BEGIN_MSG_MAP_EX(CMainDlg)
//....
CHAIN_MSG_MAP(CDoubleBufferImpl<CMainDlg>)
END_MSG_MAP()
最后寫DoPaint函數(shù),直接畫就可以了
void DoPaint(CDCHandle dc)
{ //畫個矩形
dc.Rectangle(0, 0, 10, 10);
}
成了。
注意,由于CDoubleBufferImpl類響應(yīng)了WM_PAINT消息和WM_ERASEBKGND消息,因此,自己的類中不必再響應(yīng)。
首先 #include <atlframe.h>
其次需要雙緩沖畫圖的類需要派生自CDoubleBufferImpl<>:
class CMainDlg : public CDialogImpl<CMainDlg>, public CDoubleBufferImpl<CMainDlg>{}
然后消息鏈中加入
BEGIN_MSG_MAP_EX(CMainDlg)
//....
CHAIN_MSG_MAP(CDoubleBufferImpl<CMainDlg>)
END_MSG_MAP()
最后寫DoPaint函數(shù),直接畫就可以了
void DoPaint(CDCHandle dc)
{ //畫個矩形
dc.Rectangle(0, 0, 10, 10);
}
成了。
注意,由于CDoubleBufferImpl類響應(yīng)了WM_PAINT消息和WM_ERASEBKGND消息,因此,自己的類中不必再響應(yīng)。
相關(guān)文章
C語言復(fù)數(shù)的加減及輸出結(jié)構(gòu)體
大家好,本篇文章主要講的是C語言復(fù)數(shù)的加減及輸出結(jié)構(gòu)體,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02淺析C++中memset,memcpy,strcpy的區(qū)別
本篇文章是對C++中memset,memcpy,strcpy的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-07-07如何使用arm-none-eabi-gcc編譯器搭建STM32的Vscode開發(fā)環(huán)境
這篇文章主要介紹了使用arm-none-eabi-gcc編譯器搭建STM32的Vscode開發(fā)環(huán)境,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07