程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 解析在WTL下使用雙緩沖的實現方法

解析在WTL下使用雙緩沖的實現方法

編輯:C語言基礎知識
使用WTL的CDoubleBufferImpl類可以方便的實現雙緩沖,而不必自己實現繁瑣的代碼,不僅可以繪制一般窗口,也可以繪制對話框的背景等。
首先 #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函數,直接畫就可以了
void DoPaint(CDCHandle dc)
{   //畫個矩形
     dc.Rectangle(0, 0, 10, 10);
}
成了。
注意,由於CDoubleBufferImpl類響應了WM_PAINT消息和WM_ERASEBKGND消息,因此,自己的類中不必再響應。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved