CDialog::OnCancel
Il framework chiama questo metodo quando l'utente fa clic Annulla o preme ESC in un oggetto o una finestra di dialogo non modale.
virtual void OnCancel( );
Note
Eseguire l'override di questo metodo per eseguire azioni quali recupero dei dati non aggiornati) quando un utente chiude la finestra di dialogo facendo clic Annulla o premendo ESC.L'impostazione predefinita chiude una finestra di dialogo modale chiamando EndDialog e facendo DoModal a restituire IDCANCEL.
Se si distribuisce il pulsante Annulla in una finestra di dialogo non modale, è necessario eseguire l'override del metodo OnCancel e chiamare DestroyWindow.Non chiamare il metodo della classe base, poiché chiama EndDialog, che consente la finestra di dialogo invisibile ma non distruggerla.
[!NOTA]
Non è possibile eseguire l'override di questo metodo quando si utilizza un oggetto CFileDialog in un programma compilato in Windows XP.Per ulteriori informazioni su CFileDialog, vedere Classe di CFileDialog.
Esempio
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();
}
Requisiti
Header: afxwin.h