我有一个扩展CStatic
的MyEllipe
类。
我有我自己的自定义的OnPaint
方法体覆盖。
我有一个方法来移动这个对象在一个对话框中从左到右移动:
for(int i = 0; i <= 600; i++) {
myEllipseObject->SetWindowPos(NULL, i, 300, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
Sleep(1);
}
基本上,它一个接一个地移动,延迟1毫秒。是工作吗?是的。对吗?我很怀疑:)。那么,正确有效的方法是什么呢?我有一个椭圆和一个矩形,我想在用户点击按钮时从左向右移动。
您通常会使用计时器来完成此操作。例如,您可以设置一个计时器,并在计时器触发时更新位置。您既可以响应WM_TIMER
消息,也可以指定一个函数,让它在定时器触发时调用。