Non capisco se il problema sia la UpdateWindow o la MessageBox.
Se è la MessageBox, essa funziona perché MessageBox, come DialogBox e compagnia bella, includono al loro interno una message pump (altrimenti come farebbero ad arrivare i messaggi alle message box?); di conseguenza i messaggi continuano ad essere forniti alle finestre. La finestra padre, tuttavia, viene disabilitata, e per questo buona parte degli eventi "normali" non le arrivano.
Se è la UpdateWindow, non c'è nulla di strano, dato che essa non mette il WM_PAINT nella coda dei messaggi (PostMessage), ma lo invia richiamando direttamente la wndproc (SendMessage).