Partager via


CDialog::OnCancel

L'infrastructure appelle cette méthode lorsque l'utilisateur clique sur Annuler ou appuie sur la touche Échap dans un modal ou une boîte de dialogue non modale.

virtual void OnCancel( );

Notes

Substituez cette méthode pour effectuer des actions (telles que la restauration des données précédentes) lorsqu'un utilisateur ferme la boîte de dialogue en cliquant sur Annuler ou en appuyant sur la touche ÉCHAP.La valeur par défaut ferme une boîte de dialogue modale en appelant EndDialog et en faisant retourner DoModal IDCANCEL.

Si vous implémentez le bouton Annuler dans une boîte de dialogue non modale, vous devez substituer la méthode d' OnCancel et l'appel DestroyWindow à l'intérieur de lui.N'appelez pas la méthode de la classe de base, car elle appelle EndDialog, qui rendra la boîte de dialogue invisible mais pas la destruction.

[!REMARQUE]

Vous ne pouvez pas substituer cette méthode lorsque vous utilisez un objet d' CFileDialog dans un programme compilé sous Windows XP.Pour plus d'informations sur CFileDialog, consultez CFileDialog de classe.

Exemple

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();
}

Configuration requise

Header: afxwin.h

Voir aussi

Référence

Classe de CDialog

Graphique de la hiérarchie

CDialog::OnOK

CDialog::EndDialog