Дело в том, что я как-то дизассемблировал "return 0" и получил именно то, что я написал. Потом я, чтобы окончательно убедиться, заменил "return 0" на эту вставку и все работало как надо. Почему тут выдается ошибка не понимаю.
Плохо знаю теорию, поэтому вместо цикла рендерит таймер (не этот) с очень малым интервалом, но проблема не в этом. Таймер TimerMove срабатывает многократно, проблема не в этом, а именно в формулах. Да, я не учил математику в школе и раскаиваюсь)
Суть в том, что после клика мыши объект получает координаты X и Y клика, и должен двигаться в том направлении. Координаты передаются в MoveTo, а угол высчитывается в GetAngle.
Сегодня почитаю о ваших способах. Кстати, вспомнил, что Страуструп писал о чем-то таков в своей книге о C++, он описывал класс Token. Сейчас книги под рукой нет, но тоже посмотрю.