应该是2个timer就解决他.
可以使用2个控件,1个line和1个圆形shape
然后timer1,可以控制shape自转,为了显示出自转的效果,可以为shape填充..每分10次, 也就是1分钟,3600度,你可以计算出timer的合适Interval 值..以及shape每次旋转的角度
timer2就根据你的摆动角度,来计算出每分钟15次的角度, 然后固定line的x1,y1的值,计算出新的x2,y2的值, 同样计算出timer的合适Interval 值, 让line来摆动
然后在timer中还要和line改变x2.y2值同步的改变shape的top和left值,它们分别对应的是 x2-shape1.width/2 .. y2-shape1.height/2
应该就这样了吧.至于开始和结束按钮,就是控制2个timer的Enabled了.
下面有一个旋转line的例子:
在你的消息处理函数中处理:
重载DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
if(message == WM_COMMAND){
switch(wParam){
case IDC_BUTTON2:
todo...
break;
case IDC_BUTTON3:
todo...
break;
}
}