メッセージをDispatchするループの後って絶対に通るよね。
まさかWM_QUITが来た時点でプロセスが終了するわけじゃないよね。

えーっとつまり、

{

while( GetMessage( &msg, NULL, 0, 0 ) > 0 )
{
  TranslateMessage( &msg );
  DispatchMessage( &msg );
}

MessageBox( NULL, "通るかな", NULL, MB_OK );

}

これでどんな時にも(エラー終了以外で)「通るかな」と表示されますか?