Condividi tramite


CDialog::DoModal

Chiamare la funzione membro per richiamare la finestra di dialogo modale e restituire il risultato della finestra di dialogo quando viene fatto.

virtual INT_PTR DoModal( );

Valore restituito

Un valore int che specifica il valore del parametro nResult passato alla funzione membro CDialog::EndDialog, utilizzata per chiudere la finestra di dialogo.Il valore restituito è – 1 se la funzione non è possibile creare la finestra di dialogo, o IDABORT se un altro errore si verifichi, nel qual caso finestra di output conterrà informazioni sull'errore GetLastError.

Note

Questa funzione membro gestisce tutte le interazioni con l'utente mentre la finestra di dialogo è attiva.Questa operazione rende la finestra di dialogo modale, ovvero l'utente non può interagire con altre finestre fino alla chiusura della finestra di dialogo.

Se l'utente fa clic su uno dei pulsanti nella finestra di dialogo, come OK o annulla, una funzione membro per la gestione dei messaggi, come OnOK o OnCancel, viene chiamato per tentare di chiudere la finestra di dialogo.La funzione membro predefinito OnOK convalidate e aggiornerà i dati della finestra di dialogo e chiusa la finestra di dialogo con il risultato IDOKe la funzione membro predefinito OnCancel chiusa la finestra di dialogo con il risultato IDCANCEL senza convalidare o aggiornare dati della finestra di dialogo.È possibile eseguire l'override di queste funzioni di gestore messaggi per modificare il comportamento.

[!NOTA]

PreTranslateMessage viene chiamato per l'elaborazione dei messaggi della finestra di dialogo modale.

Esempio

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;
   };
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe di CDialog

Grafico della gerarchia

DialogBox

CWnd::IsDialogMessage