Partager via


CDialog::DoModal

Appelez la fonction membre pour appeler la boîte de dialogue modale et retourner le résultat de la boîte de dialogue lorsqu'il fait.

virtual INT_PTR DoModal( );

Valeur de retour

Une valeur d' int qui spécifie la valeur du paramètre d' nResult passé à la fonction membre de CDialog::EndDialog , qui est utilisée pour fermer la boîte de dialogue. La valeur de retour est à 1 si la fonction ne peut pas créer la boîte de dialogue, ou IDABORT si une autre erreur s'est produite, dans ce cas fenêtre Sortie contient des informations sur l'erreur de GetLastError.

Notes

Cette fonction membre gère toute interaction avec l'utilisateur lorsque la boîte de dialogue est actif. c'est ce qui rend la boîte de dialogue modale ; autrement dit, l'utilisateur ne peut pas interagir avec d'autres fenêtres jusqu'à ce que la boîte de dialogue est fermée.

Si l'utilisateur clique sur l'un des boutons poussoir dans la boîte de dialogue, telle que OK ou annuler, une fonction membre gestionnaire de messages, telle qu' OnOK ou OnCancel, est appelé pour tenter de fermer la boîte de dialogue. La fonction membre par défaut d' OnOK validera et met à jour les données de boîtes de dialogue et ferme la boîte de dialogue avec le résultat IDOK, et la fonction membre par défaut d' OnCancel ferme la boîte de dialogue avec le résultat IDCANCEL sans valider ou mettre à jour les données de boîte de dialogue. Vous pouvez substituer ces fonctions gestionnaires de messages pour modifier leur comportement.

Notes

PreTranslateMessage est maintenant appelé pour le traitement des messages de boîte de dialogue modale.

Exemple

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

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CDialog, classe

Graphique de la hiérarchie

DialogBox

CWnd::IsDialogMessage