Freigeben über


CDialog::OnCancel

Das Framework ruft diese Methode auf, wenn der Benutzer auf klickt Abbrechen oder ESC-TASTE in einem modalen oder in einem nicht modalen Dialogfeld drückt.

virtual void OnCancel( );

Hinweise

Überschreiben Sie diese Methode, um Aktionen auszuführen (wie Wiederherstellen von alten Daten) wenn ein Benutzer das Dialogfeld geschlossen wird, indem er auf Abbrechen klickt oder die ESC-TASTE trifft.Standardmäßig enthält ein modales Dialogfeld, indem EndDialog aufruft und DoModal bewirkt, IDCANCEL zurückzugeben.

Wenn Sie die Schaltfläche Abbrechen in einem nicht modalen Dialogfeld implementieren, müssen Sie die OnCancel-Methode überschreiben und DestroyWindow darin aufrufen.Rufen Sie nicht die Basisklassenmethode auf, da sie EndDialog, die das Dialogfeld nicht sichtbar erstellt, jedoch nicht, zu zerstören aufruft.

HinweisHinweis

Sie können diese Methode nicht überschreiben, wenn Sie ein CFileDialog-Objekt in einem Programm verwenden, das unter Windows XP kompiliert wird.Weitere Informationen zur CFileDialog-Komponente finden Sie unter CFileDialog-Klasse.

Beispiel

void CSimpleDlg::OnCancel()
{
   // TODO: Add extra cleanup here

   // Ensure that you reset all the values back to the
   // ones before modification. This handler is called
   // when the user doesn't want to save the changes.

   if (AfxMessageBox(_T("Are you sure you want to abort the changes?"), 
      MB_YESNO) == IDNO)
   {
      // Give the user a chance if he has unknowingly hit the
      // Cancel button. If he says No, return. Don't reset. If
      // Yes, go ahead and reset the values and close the dialog.
      return; 
   }

   m_nMyValue = m_nPrevValue;
   m_pMyString = NULL; 

   CDialog::OnCancel();
}

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CDialog-Klasse

Hierarchien-Diagramm

CDialog::OnOK

CDialog::EndDialog