я пытаюсь невинно позвонить
PeekMessage(&msg, 0, WM_KEYDOWN, WM_KEYUP, PM_NOREMOVE | PM_NOYIELD);
и Windows Vista 64 в вызове PeekMessage обрабатывают сообщения . В результате я возвращаюсь к своему вызову рисования и ко всему прочему коду.
В нашем приложении рисование может занять несколько секунд, поэтому мы добавили вызов PeekMessage, чтобы увидеть, нажал ли пользователь клавишу, чтобы мы могли прервать это рисование и запустить следующее. Мало ли мы поняли, что Windows может начать обрабатывать сообщения на нас. Было бы серьезным рефакторингом поместить реальную работу рисования в отдельный поток ... Мы пытаемся увидеть, были ли нажаты определенные клавиши, или вращалось ли колесо мыши или кнопки мыши, чтобы прервать рендеринг.
Я пытался добавить код специально для предотвращения повторного входа, а затем повторно вводить сообщения рисования в очередь и т. Д. Это все очень грязно, и есть случаи, когда он не работает хорошо.
Есть ли какой-нибудь флаг, который я мог бы добавить к вызову PeekMessage? Я не увидел ничего нового в документации по MSDN. Мне действительно нужен PeekMessage
, который не обрабатывает сообщения. Помогите!