Condividi tramite


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

Vedere anche

Riferimenti

Classe CDialog

Grafico delle gerarchie

CDialog::OnOK

CDialog::EndDialog