BOOL CProgressDlg::Create(CWnd *pParent) { // Get the true parent of the dialog m_pParentWnd = CWnd::GetSafeOwner(pParent); // m_bParentDisabled is used to re-enable the parent window // when the dialog is destroyed. So we don't want to set // it to TRUE unless the parent was already enabled. if((m_pParentWnd!=NULL) && m_pParentWnd->IsWindowEnabled()) { m_pParentWnd->EnableWindow(FALSE); m_bParentDisabled = TRUE; } if(!CDialog::Create(CProgressDlg::IDD,pParent)) { ReEnableParent(); return FALSE; } return TRUE; }
BOOL CDlgCommonProgress::Create(CWnd *pParent) { // ダイアログの実際の親ウィンドウを取得します。 m_pParentWnd = CWnd::GetSafeOwner(pParent); // m_bParentDisabled は、このダイアログが破棄された時に、親ウィンドウを // 再び有効にするために使用します。従って、この時点で親ウィンドウがすでに // 有効な場合のみ、この変数に TRUE を設定します。 if((m_pParentWnd!=NULL) && m_pParentWnd->IsWindowEnabled()) { m_pParentWnd->EnableWindow(FALSE); m_bParentDisabled = TRUE; } if(!CDialog::Create(CDlgCommonProgress::IDD,pParent)) { ReEnableParent(); return FALSE; } return TRUE; }
BOOL CProgressDlg::DestroyWindow() { ReEnableParent(); return CDialog::DestroyWindow(); }
BOOL CDlgCommonProgress::DestroyWindow() { PumpMessages(); ReEnableParent(); return CDialog::DestroyWindow(); }