// in parent window void CTIH_WMXDlg::OnBnClickedButtonNewdialog() { if( NULL == m_pSubDlg ) { // create a non-model dialog and show window. m_pSubDlg = new Sub(this); m_pSubDlg->Create(IDD_DIALOG_SUB, this); m_pSubDlg->ShowWindow(SW_SHOW); } else { m_pSubDlg->SetActiveWindow(); } } // in sub-dialog window PostNcDestroy function void MessageDlg::PostNcDestroy() { ((CTIH_WMXDlg *)m_pParentWnd)->m_pMessageDlg = NULL; delete this; CDialog::PostNcDestroy(); }