Игровые API обычно синхронизируют свои данные в реальном цикле сообщений приложения, поскольку большинство игр рисуют спрайты непосредственно на поверхности окна, а не с использованием отдельных дочерних окон.
Самоанимационные элементы управления, которые создаются как дочерние окна, могут планировать сообщения WM_TIMER для себя через SetTimer, обычно для обработки краткосрочных состояний - в вашем случае, вероятно, Button использовал API TrackMouseEvent, чтобы получать уведомление через WM_MOUSELEAVE, когда мышь покидает кнопку .
Чтобы разрешить более сложные анимации в приложениях на основе форм, Microsoft представила Диспетчер анимации Windows .