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