Включаем анимацию
Реакция на сообщение о том, что истек очередной квант времени в 33 миллисекунды (именно такую установку мы сделали в OnLButtonUp) выглядит очень просто. Увеличиваем углы поворота изображения на те кванты, которые вычислили в функции OnMouseMove и вызываем перерисовку окна.
Так как при непрерывном вращении углы постоянно растут, то можно искусственно реализовать естественную их периодичность с циклом в 360 градусов. Однако с этой задачей успешно справляется OpenGL, и вы можете убрать код ограничения углов:
void COGView::OnTimer (UINT nIDEvent) { //====== Если это был наш таймер if (nIDEvent==1) { //====== Увеличиваем углы поворота m_AngleX += m_dy; m_AngleY += m_dx; //====== Ограничители роста углов if (m_AngleX > 360) m_AngleX -= 360; if (m_AngleX <-360) m_AngleX += 360; if (m_AngleY > 360) m_AngleY -=360; if (m_AngleY <-360) m_AngleY +=360; //====== Просим перерисовать окно Invalidate(FALSE); } else //=== Каркас приложения обработает другие таймеры CView::OnTimer(nIDEvent); }
Запустите и протестируйте приложение. Скорректируйте, если необходимо, коэффициенты чувствительности.