Not used OpenGL for many years but a few comments....

You are using the standard app loop (using a single GetMessage()) as opposed to a 'game' msg loop (using PeekMessage()).

The difference is...