Ponieważ używasz PeekMessage() co powoduje jedynie "zajrzenie" do kolejki komunikatów windows obadanie czy nic tam nie leży i oddanie sterowania do programu, a że masz to pięknie zrobione w pętli while(true) no to wykonuje to tak szybko jak tylko potrafi, polecam użycia
while(GetMessage(&message, NULL, 0, 0) )
{
TranslateMessage(&message);
DispatchMessage(&message);
}
(no chyba że tam jeszcze będziesz chciał coś dodać co spowolni działanie programu)
pozdrawiam