CDialog::DoModal
Rufen Sie die Memberfunktion auf, um das modale Dialogfeld aufzurufen und das Dialogfeldergebnis zurückzugeben, wenn die.
virtual INT_PTR DoModal( );
Rückgabewert
Ein int-Wert, der den Wert des nResult-Parameter angibt, der der CDialog::EndDialog-Memberfunktion übergeben wurde, die verwendet wird, um das Dialogfeld zu schließen. Der Rückgabewert ist - 1, wenn die Funktion das Dialogfeld nicht erstellen konnte, oder IDABORT, wenn ein anderer Fehler aufgetreten ist, in diesem Fall Ausgabefenster Fehlerinformationen von GetLastError enthält.
Hinweise
Diese Memberfunktion behandelt alle Interaktion mit dem Benutzer, während das Dialogfeld aktiv ist. Dies ist, was das Dialogfeld modal erstellt; das heißt, kann der Benutzer nicht mit anderen Fenstern interagieren, bis das Dialogfeld geschlossen wird.
Wenn der Benutzer auf einen der Pushbuttone im Dialogfeld, wie OK oder Abbrechen, eine Meldungshandlermemberfunktion, wie OnOK oder OnCancel klickt, wird aufgerufen, um zu versuchen, das Dialogfeld zu schließen. Die standardmäßige OnOK-Memberfunktion überprüft und aktualisiert die Dialogfelddaten und schließt das Dialogfeld mit Ergebnis IDOK, und die standardmäßige OnCancel-Memberfunktion wird das Dialogfeld mit Ergebnis IDCANCEL, ohne die Dialogfelddaten zu überprüfen oder zu aktualisieren. Sie können diese Meldungshandlerfunktionen überschreiben, um dieses Verhalten zu ändern.
Hinweis
PreTranslateMessage wird jetzt für das Meldungsverarbeiten des modalen Dialogfelds aufgerufen.
Beispiel
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;
};
}
Anforderungen
Header: afxwin.h