您的位置:首页 > 其它

利用MFC实现动画效果

2011-04-19 21:02 751 查看
利用MFC实现动画效果

引自:http://www.cnblogs.com/Camellia/archive/2008/03/08/1096418.html

————————————————————————————

在View类的添加一个定时器,Oncreate函数中添加

UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );

第一个参数为定时器标识符,第二个参数是时间,单位为微秒,第三个参数可以设置为空,所以实例如下:
SetTimer(1,100,NULL;)
这个代码实现的所谓的动画就是覆盖掉上一张图像,再新画一张,看起来似乎是动的。
代码如下:

void C动画测试View::OnTimer(UINT_PTR nIDEvent)
{
CBitmap   test_Bitmap;
CDC   test_MemDc;  //建立一个缓存设备上下文
CDC *test_cDc=GetDC(); //取得设备上下文

test_Bitmap.LoadBitmap( IDB_TEST); /*位图文件路径IDR_MAINFRAME*/

test_MemDc.CreateCompatibleDC(test_cDc);

//选择位图
test_MemDc.SelectObject(&test_Bitmap);

//画在屏幕上
test_cDc->BitBlt(DRAWX,DRAWY,       //左上角坐标
PICWIDTH,PICHEIGHT,     //显示的宽和高
&test_MemDc,   //从缓存中获取
picx,   picy,       //从源位图的(0,0)坐标开始显示
SRCCOPY  );   //将源位图拷贝至屏幕
ReleaseDC(test_cDc);
test_MemDc.DeleteDC();//释放内存
picx+=PICWIDTH;
if (picx >= 704)
picx=0;
CView::OnTimer(nIDEvent);
}


————————————————————————————

Good Luck!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: