解析在WTL下使用双缓冲的实现方法
解析在WTL下使用双缓冲的实现方法
发布时间:2016-12-28 来源:查字典编辑
摘要:使用WTL的CDoubleBufferImpl类可以方便的实现双缓冲,而不必自己实现繁琐的代码,不仅可以绘制一般窗口,也可以绘制对话框的背景...

使用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消息,因此,自己的类中不必再响应。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类