VC中用GDI函数实规高速平滑动画(4)
6、添加了绘图函数,下面再介绍如何使用CMemBitmap类,来实现动画效果:
首先,我们在视图类(也可以是其它窗口类)中声明一个CMemBitmap成员变量m_MemBitmap,代码如下:
private:
CMemBitmap m_MemBitmap;
然后,我们重载Cview类函数OnInitialUpdate(),以便视图初始化结束后初始化位图对象,并且视图指针传递过去,其实现代码如下:
void CTestBitmapView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_MemBitmap.init(this);
SetTimer(1,100,NULL);
}
在函数最后,启动了一个定时器, 我们将用定时来实现动画功能。
接着,我们重载定时器消息函数OnTimer实现动画功能。其实现代码如下:
void CTestBitmapView::OnTimer(UINT nIDEvent)
{
int x , y;//文本显示的位置
CRect rect;//客户区域
CDC* pDC = GetDC();//获取视图的DC
CDC dcComp;
//得到客户区尺寸
GetClientRect(&rect);
//随机获得要显示文本的位置
srand( (unsigned)time( NULL ) );

