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