Note that one of the things DoModal does is to disable the parent window. So, that is the reason, why you won't be able to use any other window when you are using a modal dialog. And that is the same reason, you are not able to use the MDI possibly. Just hiding the modal window does not change the enabled/disabled state of the parent window. So, after hiding the modal dialog, you need to enable the parent explicitly by calling EnableWindow..
Having said that, if your app calls for being able to access the MDI even when the dialog is existing, why not use a modeless dialog. One of the things modeless dialogs do is to just hide the dialog when you click on the close button ( the dialog itself is not destroyed ).