Это не так. Эти две функции делают разные вещи.
PeekMessage (...) не ждет появления сообщения - оно получает первое, если оно есть, при желании также удаляет его из очереди, но сразу возвращает false, если его нет Это чаще встречается в приложениях, где вы выполняете некоторую обработку, ожидая сообщений, и не можете просто сидеть и ждать следующего сообщения вечно. Игры в реальном времени и тому подобное легко попадают в эту категорию.
GetMessage (...) ждет, пока есть сообщение, и получает его. Это более эффективно CPUwise, потому что он не постоянно опрашивает, но остановится, если нет никаких сообщений. Это чаще встречается в больших приложениях и других программах, которые не требуют постоянной обработки в реальном времени.