Плавное перемещение объекта эллипса слева направо в 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 ответ:
Обычно это делается с помощью таймера. Например, вы можете установить таймер и обновить положение при срабатывании таймера. Вы можете либо ответить на
WM_TIMER
сообщение или укажите функцию, которую он будет вызывать при срабатывании таймера.