One customer wanted to wait until the dialog box was displayed
before displaying its own dialog box.
(Personally, I think immediately displaying
a doubly-nested dialog box counts as starting off on the wrong foot
from a usability standpoint,
but let's set that issue aside for now.)
The customer discovered that displaying the nested dialog box
in response to the
WM_INITDIALOG message was premature,
because as we all know,
WM_INITDIALOG is sent
before the dialog box is displayed.
The question therefore is,
"How do I want until my dialog box is displayed before doing something?"
One proposed solution was the following code fragment:
case WM_INITDIALOG: PostMessage(hDlg, WM_APP, 0, 0); return TRUE; case WM_APP: ... display the second dialog ... break;
- Why is this wrong? Hint: You definitely know the answer to this already.
- What is the correct solution? You probably know this already.