FPSを正確にきざむためじゃなくて、入力に即座に反応する必要がないときとかに
負荷をかけないで待機するのが目的だったらMsgWaitForMultipleObjectsをおすすめするぜ
あたらしいメッセージが届くか、タイムアウトするかの両方で待つことができるんだ
あとメッセージキューは一回の検査で空っぽになるまで中身をとりだしちゃお
あとWM_CHARを評価しないならTranslateMessageを呼ぶ必要はないぜ…確か。