I noticed that DoModal doesn't actually make the dialog modal (you can still interact with the parent window, close it, etc.) Is there something that needs to be done in addition to calling DoModal, or is this a bug?
There is a field in the create function where you indicate the dialog's parent window. Then it will be modal.
The parent window has to exist before you call CDialog::Create or the handle to the parent doesn't get set. Not a bug per se, just the way it worked in Pro too.
Since we are using classes now I can actually change that behavior so a pointer to the parent class gets saved instead. That way the parent window doesn't actually have to be opened before using CDialog::Create
Done. Makes more sense this way now too.