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

时间:2012-12-30 13:21:10

标签: c++ mfc

我有一个MyEllipe类扩展CStatic

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

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

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

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

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:3)

您通常会使用计时器执行此操作。例如,您可以设置计时器,并在计时器触发时更新位置。您可以响应WM_TIMER消息,也可以指定在计时器触发时调用的函数。