Как переделать главный цикл, чтоб что то делать, когда нет ссобщений?

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Eugie, Romeo, Hawk

Ответить
Аватара пользователя
Сионист
Сообщения: 1078
Зарегистрирован: 31 мар 2014, 06:18

12 дек 2015, 18:18

Сейчас

Код: Выделить всё

while (GetMessage(&Message, NULL, 0, 0))
 {
  TranslateMessage(&Message);
  DispatchMessage(&Message);
 }
. Как это исправить, чтоб в отсутствии ожидающих сообщений вызывать некоторую свою функцию?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

14 дек 2015, 11:06

Вместо GetMessage вызывать PeekMessage. И если очередь пуста, то вызывать свою функцию. Если же не пуста, то не забыть удалить сообщение из очереди, так как PeekMessage это не делает, в отличие от GetMessage. Подробности на MSDN.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить