概要

Windowsは入力等のイベントが発生するとアプリケーションにメッセージを送付します。
メッセージはキューに保管されます。アプリケーションはメッセージを取り出し、該当ウィンドウにメッセージを配信します。
メッセージの取り出しから配信までループで処理を行いウィンドウから終了メッセージが届くと、ループを抜けるように記述します。 これらの一連の処理は、通常にCreateWindow APIの後に記述しこれをメッセージループと呼んでいます。
以下の記述がメッセージループの処理です。
MSG lpMsg;
while (GetMessage(&lpMsg, NULL, 0, 0)) {
        TranslateMessage(&lpMsg);
        DispatchMessage(&lpMsg);
}
GetMessage APIはスレッドへのメッセージが発生するまで待機し、メッセージが発生したときにlpMsgにメッセージを格納して制御を返します。
TranslateMessage APIは仮想キーメッセージを実際の文字メッセージへ変換します
仮想キーコードは、キーボードをそのまま定数に置き換えたイメージです。例えばShiftキーと同時に押した場合の大文字・小文字の変換やCtrlキーを同時に押した場合などの処理などがされていない状態です。例として以下にいくつかの定数を示します。
VK_BACK             0x08          BackSpaceキー
VK_TAB              0x09          Tabキー
VK_RETURN           0x0D          Enterキー
VK_SHIFT            0x10          Shiftキー
VK_CONTROL          0x11          Ctrlキー
VK_MENU             0x12          Altキー
VK_CAPITAL          0x14          Caps Lockキー
VK_KANA             0x15          英数カナキー
VK_UP               0x26          ↑キー
VK_RIGHT            0x27          →キー
VK_DOWN             0x28          ↓キー
VK_3                0x33          3キー
VK_NUMPAD0          0x60          テンキーの0キー
VK_F1               0x70          F1キー
DispatchMessage APIはウィンドウプロシージャーへメッセージを送ります。