日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC采用定时器绘制简单动画

發(fā)布時間:2023/12/31 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC采用定时器绘制简单动画 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MFC采用定時器繪制簡單動畫


參考孔令德老師的《計算幾何算法與實現(xiàn)》

非雙緩沖技術(shù)繪制圓的半徑旋轉(zhuǎn)動畫:
view類中添加變量:

// 操作 public:CPoint P0,P1;//初始化直線的端點值double Alpha;//旋轉(zhuǎn)起始角度double r;//初始化圓的半徑

在構(gòu)造函數(shù)中初始化:

CtestView::CtestView() {// TODO: 在此處添加構(gòu)造代碼P0=(0,0);P1=(0,0);//初始化直線的端點值Alpha=0;//旋轉(zhuǎn)起始角度r=200;//初始化圓的半徑 }

在OnDraw函數(shù)中添加繪制函數(shù):

// TODO: 在此處為本機數(shù)據(jù)添加繪制代碼CRect rect;GetClientRect(&rect);//獲得客戶區(qū)大小pDC->SetMapMode(MM_ANISOTROPIC);//設(shè)置映射模式pDC->SetWindowExt(rect.Width(),rect.Height());//設(shè)置窗口范圍pDC->SetViewportExt(rect.Width(),-rect.Height());//設(shè)置視區(qū)范圍,y向上為正方向pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);//設(shè)置坐標系原點rect.OffsetRect(-rect.Width()/2,-rect.Height()/2);//校正客戶區(qū)矩形//繪制直線圓周動畫P1.x=ROUND(r*cos(Alpha*PI/180));P1.y=ROUND(r*sin(Alpha*PI/180));pDC->MoveTo(P0);pDC->LineTo(P1);SetTimer(1,150,NULL);//需要OnTimer函數(shù)來響應(yīng)

為定時器函數(shù)添加OnTime響應(yīng),在類向?qū)е刑砑?#xff1a;

void CtestView::OnTimer(UINT_PTR nIDEvent) {// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認值Alpha+=10;if(Alpha>=360)Alpha=Alpha-360;//轉(zhuǎn)滿一圈角度歸零Invalidate();CView::OnTimer(nIDEvent); }

總結(jié)

以上是生活随笔為你收集整理的MFC采用定时器绘制简单动画的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。