No se recibe WM_COMMAND en el bucle GetMessage

¿Podría alguien explicar por qué nunca recibo unaWM_COMMAND mensaje en mi bucle GetMessage?
He comprobado y el WndProc está recibiendo elWM_COMMAND mensaje, así que estoy muy confundido por qué esto no funciona.

while (GetMessage(&msg, NULL, 0, 0) != 0)
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);

    if (msg.message == WM_COMMAND)
    {
        // This never happens:
        MessageBox(NULL, "WM_COMMAND", "WM_COMMAND", MB_OK);
    }
}

OS: Windows 8

Respuestas a la pregunta(1)

Su respuesta a la pregunta