在MFC中从左到右平滑地移动椭圆对象

Moving an Ellipse Object from left to right smoothly in MFC

本文关键字:移动 对象 平滑 MFC 从左到右      更新时间:2023-10-16

我有一个扩展CStaticMyEllipe类。

我有我自己的自定义的OnPaint方法体覆盖。

我有一个方法来移动这个对象在一个对话框中从左到右移动:

for(int i = 0; i <= 600; i++) {
   myEllipseObject->SetWindowPos(NULL, i, 300, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
   Sleep(1);
}

基本上,它一个接一个地移动,延迟1毫秒。是工作吗?是的。对吗?我很怀疑:)。那么,正确有效的方法是什么呢?我有一个椭圆和一个矩形,我想在用户点击按钮时从左向右移动。

您通常会使用计时器来完成此操作。例如,您可以设置一个计时器,并在计时器触发时更新位置。您既可以响应WM_TIMER消息,也可以指定一个函数,让它在定时器触发时调用。