利用MFC实现动画效果
利用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!