Для преобразования числа с плавающей точкой в целое число можно использовать один из следующих загадочных взломов (не делайте):
3.14 >> 0
(через 2,9999999999999999 > >.5? ) 3.14 | 0
(через , Что лучший метод должен преобразовать плавающую точку в целое число в JavaScript? ) 3.14 & -1
3.14 ^ 0
~~3.14
В основном, применяя любую бинарную операцию на плавание, которое не изменит окончательное значение (т.е. тождественное отображение) заканчивает тем, что преобразовал плавание в целое число.
В качестве временного обходного пути я теперь снимаю паузу в приложении всякий раз, когда получаю сообщение WM_ACTIVATE. Похоже, это как-то решило этот конкретный случай (вы можете восстановить приложение, активировав его снова) и, похоже, ничего не сломало.
Однако такое решение мне неприятно. Я бы предпочел понять, как это должно работать, чем полагаться только на ограниченное тестирование.
Вы должны получать сообщение WM_SIZE каждый раз, когда операция определения размера будет завершена. И при изменении размера вы будете получать сообщения WM_SIZING.
Может быть, вы могли бы также использовать их, чтобы возобновить работу приложения?