2

我有一个MyEllipe扩展类CStatic

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

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

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

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

任何想法都值得赞赏。

4

1 回答 1

3

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

于 2012-12-30T21:27:23.573 回答