다음을 통해 공유


CDialog::DoModal

모달 대화 상자를 호출 하 고 완료 되 면 대화 상자 결과 반환 하려면이 멤버 함수를 호출 합니다.

virtual INT_PTR DoModal( );

반환 값

int 의 값을 지정 하는 값은 nResult 에 전달 된 매개 변수는 CDialog::EndDialog 대화 상자를 사용 하는 멤버 함수.대화 상자에서 함수를 만들 수 없는 경우 반환 값은-1입니다 또는 IDABORT 경우에 다른 오류가 발생 하는 경우는 출력 창 에서 오류 정보를 포함할 GetLastError.

설명

이 멤버 함수 대화 상자가 활성화 되어 있는 동안 사용자와의 모든 상호 작용을 처리 합니다.이 대화 상자는 모달이 됩니다. 즉, 대화 상자가 닫힐 때까지 사용자 다른 창과 상호 작용할 수 없습니다.

사용자는 누름 단추 대화 상자에서 확인 또는 취소를 메시지 처리기 멤버 함수 중 하나 처럼 클릭 하면 OnOK 또는 OnCancel, 대화 상자를 닫을 수 라고 합니다.기본 OnOK 멤버 함수 검증 및 대화 상자 데이터를 업데이트 하 고 결과에 대화 상자를 닫으려면 IDOK, 기본 OnCancel 멤버 함수를 대화 상자 결과를 닫습니다 IDCANCEL 확인 하거나 대화 상자 데이터를 업데이트 하지 않고.해당 동작을 변경 하는 이러한 메시지 처리기 함수를 재정의할 수 있습니다.

[!참고]

PreTranslateMessage이제 모달 대화 상자의 메시지 처리를 위해 호출 됩니다.

예제

void CMyDialog::OnMenuShowAboutDialog()
{
   // Construct the dialog box passing the 
   // ID of the dialog template resource
   CDialog aboutDlg(IDD_ABOUTBOX);

   // Create and show the dialog box
   INT_PTR nRet = -1;
   nRet = aboutDlg.DoModal();

   // Handle the return value from DoModal
   switch (nRet)
   {
      case -1: 
         AfxMessageBox(_T("Dialog box could not be created!"));
         break;
      case IDABORT:
         // Do something
         break;
      case IDOK:
         // Do something
         break;
      case IDCANCEL:
         // Do something
         break;
      default:
         // Do something
         break;
   };
}

요구 사항

헤더: afxwin.h

참고 항목

참조

CDialog 클래스

계층 구조 차트

DialogBox

CWnd::IsDialogMessage