ウィンドウメッセージの処理でSleepは応答なしになるのにMessageBoxは応答なしにならない理由

例えば、ボタンを押すと送られるBN_CLICKEDを検出して、そこにボタンを押したときの処理を記述しますが、シングルスレッドなので、何も工夫しなければSleepで処理を止めるとメインウィンドウが応答しなくなります。
ところが、MessageBoxだと処理は止まっているのにも関わらずメインウィンドウは応答します。(親ハンドルを指定するとそのウィンドウは無効になるが応答がないわけではない)
この謎に対する答えが以下に示すページにありました。

というわけでMessageBox関数内にメッセージループがあるので応答できるようです。