Apologies for not replying to this sooner. I had to break from this to work on something else.
My env is Windows 11 (also same issue on win 10). I'm using VS 2019. I have a C++ solution and I'm using WTL as the basis of window management and msg handling.
Here's what happens: The user clicks on an element in my scene. After GetDoubleClickTime() time has passed (I have a timer ticking to check), I determine that it's OK to show the dialog as the user won't be dbl-clicking. I then ::PostMessage() to the parent window. The handler (Wm_Show_Tip) constructs and displays the dialog.
I decided to check how long everything took to execute. So, I enter the message handler and construct the dialog:
Wm_Show_Tip::Show Tip Begin 0ms
Wm_Show_Tip::Construct Dialog 0ms
Dialog::Constructor End 0ms
, I call DoModal:
Wm_Show_Tip::DoModal 0ms
Dialog::Wm_Init_Dialog Start 3ms
Dialog::Wm_Init_Dialog End 7ms
, the dialog finishes when I click away:
Wm_Show_Tip::DoModal Finishes 753ms
3ms passes between DoModal and WM_INITDIALOG, and dialog init takes 4ms. I tried this with a different dialog class, i.e. described here, just in case I'd done something dumb in my impl, and I get the same effect. The effect can be seen in this video. As my surfaces are layered, the background elements were not captured. You can see the IDC_WAIT appearing as I click elements (bottom, right).
Thanks for any insight.