Partager via


Procédure pas - à - pas : CTaskDialog ajouter un à une application

Cette procédure pas - à - pas présente CTaskDialog, classe et indique comment ajouter un à votre application.

CTaskDialog est une boîte de dialogue de tâche qui remplace le message windows dans Windows Vista.CTaskDialog améliore la zone de message d'origine et ajoute des fonctionnalités.Le message windows est toujours pris en charge dans Visual Studio.

[!REMARQUE]

Les versions de Windows antérieures à Windows Vista ne prennent pas en charge CTaskDialog.Vous devez programmer une autre option de la boîte de dialogue si vous souhaitez afficher un message à un utilisateur qui exécute votre application sur une version antérieure de windows.Vous pouvez utiliser la méthode statique CTaskDialog::IsSupported pour déterminer au moment de l'exécution si l'ordinateur d'un utilisateur peut afficher CTaskDialog.En outre, CTaskDialog est uniquement disponible lorsque votre application est générée avec la bibliothèque Unicode.

CTaskDialog prend en charge plusieurs éléments facultatifs pour rassembler et afficher des informations.Par exemple, CTaskDialog peut afficher les liens de commande, les boutons personnalisés, des icônes personnalisées, et un pied de page.CTaskDialog possède également plusieurs méthodes qui vous permettent d'interroger l'état de la boîte de dialogue de tâche pour déterminer quels éléments facultatifs l'utilisateur a sélectionnés.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :

  • Visual Studio 2010

  • Windows Vista

Remplacer une boîte de message windows avec un CTaskDialog

La procédure suivante montre l'utilisation la plus simple d' CTaskDialog, qui est de remplacer le message windows.Cet exemple modifie également l'icône associée à la boîte de dialogue de tâche.Modifiant l'icône fait CTaskDialog être identique à la boîte de message windows.

Pour remplacer une boîte de message windows avec un CTaskDialog

  1. Créez un projet application MFC avec le paramètre par défaut.Appelez Monprojet.

  2. Utilisez Explorateur de solutions pour ouvrir le fichier MyProject.cpp.

  3. Ajoutez #include "afxtaskdialog.h" après que la liste inclut.

  4. Recherchez la méthode CMyProjectApp::InitInstance.Insérez les lignes de code suivantes avant l'instruction d' return TRUE; .Ce code crée les chaînes que nous utilisons dans le message windows ou dans CTaskDialog.

    CString message("My message to the user");
    CString dialogTitle("My Task Dialog title");
    CString emptyString;
    
  5. Ajoutez le code suivant après le code de l'étape 4.Ce code vérifie que de l'utilisateur aide CTaskDialog.Si la boîte de dialogue n'est pas pris en charge, l'application affiche une boîte de message windows à la place.

    if (CTaskDialog::IsSupported())
    {
    
    }
    else
    {
       AfxMessageBox(message);
    }
    
  6. Insérez le code suivant entre parenthèses après l'instruction d' if de l'étape 5.Ce code crée CTaskDialog.

    CTaskDialog taskDialog(message, emptyString, dialogTitle, TDCBF_OK_BUTTON);
    
  7. Sur la ligne suivante, ajoutez le code suivant.Ce code définit l'icône d'avertissement.

    taskDialog.SetMainIcon(TD_WARNING_ICON);
    
  8. Sur la ligne suivante, ajoutez le code suivant.Ce code affiche la boîte de dialogue de tâche.

    taskDialog.DoModal();
    

Vous pouvez omettre l'étape 7 si vous ne souhaitez pas CTaskDialog pour afficher la même icône que le message windows.Si vous omettez cette étape, CTaskDialog n'a aucune icône lorsque l'application s'affiche.

Compilez et exécutez l'application.L'application affiche la boîte de dialogue de tâche après son démarrage.

Ajout de fonctionnalités au CTaskDialog

La procédure suivante vous indique comment ajouter des fonctionnalités à CTaskDialog que vous avez créé dans la procédure précédente.L'exemple de code montre comment exécuter l'instruction spécifique en fonction de les sélections de l'utilisateur.

Pour ajouter des fonctionnalités au CTaskDialog

  1. Naviguez jusqu'à Affichage des ressources.Si vous ne voyez pas Affichage des ressources, vous pouvez l'ouvrir dans le menu Afficher .

  2. Développez Affichage des ressources jusqu'à ce que vous puissiez sélectionner le dossier Table de chaînes .Développez l'et double-cliquer sur une entrée Table de chaînes .

  3. Faites défiler vers le bas de la table de chaînes et ajoutez une nouvelle entrée.Modifiez l'ID à TEMP_LINE1.Définissez la légende à la ligne de commande 1.

  4. Ajoutez une autre nouvelle entrée.Modifiez l'ID à TEMP_LINE2.Définissez la légende à la ligne de commande 2.

  5. Revenez à MyProject.cpp.

  6. Après CString emptyString;, ajoutez le code suivant :

    CString expandedLabel("Hide extra information");
    CString collapsedLabel("Show extra information");
    CString expansionInfo("This is the additional information to the user,\nextended over two lines.");
    
  7. Recherchez l'instruction d' taskDialog.DoModal() et la remplacer qu'instruction par le code suivant.Ce code met à jour la boîte de dialogue de tâche et ajoute de nouveaux contrôles :

    taskDialog.SetMainInstruction(L"Warning");
    taskDialog.SetCommonButtons(TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);
    taskDialog.LoadCommandControls(TEMP_LINE1, TEMP_LINE2);
    taskDialog.SetExpansionArea(expansionInfo, collapsedLabel, expandedLabel);
    taskDialog.SetFooterText(L"This is the a small footnote to the user");
    taskDialog.SetVerificationCheckboxText(L"Remember your selection");
    
  8. Ajoutez la ligne suivante de code qui affiche la boîte de dialogue de tâche à l'utilisateur et récupère la sélection de l'utilisateur :

    INT_PTR result = taskDialog.DoModal();
    
  9. Insérez le code suivant après l'appel à taskDialog.DoModal().Cette section de code traite l'entrée de l'utilisateur :

    if (taskDialog.GetVerificationCheckboxState() )
    {
       // PROCESS IF the user selects the verification checkbox 
    }
    
    switch (result)
    {
       case TEMP_LINE1:
          // PROCESS IF the first command line
          break;
       case TEMP_LINE2:
          // PROCESS IF the second command line
          break;
       case IDYES:
          // PROCESS IF the user clicks yes
          break;
       case IDNO:
          // PROCESS IF the user clicks no
          break;
       case IDCANCEL:
          // PROCESS IF the user clicks cancel
          break;
       default:
          // This case should not be hit because closing the dialog box results in IDCANCEL
          break;
    }
    

Dans le code à l'étape 9, remplacez les commentaires qui commencent par le PROCESSUS IF avec le code que vous souhaitez exécuter dans les conditions spécifiées.

Compilez et exécutez l'application.L'application affiche la boîte de dialogue de tâche qui utilise des contrôles et informations supplémentaires.

Affichage d'un CTaskDialog sans créer d'objet de CTaskDialog

La procédure suivante vous indique comment afficher CTaskDialog sans créer d'abord un objet d' CTaskDialog .Cet exemple continue les procédures précédentes.

Pour afficher un CTaskDialog sans créer d'objet de CTaskDialog

  1. Ouvrez le fichier de MyProject.cpp s'il n'est pas déjà ouvert.

  2. Naviguez jusqu ' à le crochet fermant pour l'instruction d' if (CTaskDialog::IsSupported()) .

  3. Insérez le code suivant immédiatement avant le crochet fermant de l'instruction d' if (avant que le bloc d' else ) :

    HRESULT result2 = CTaskDialog::ShowDialog(L"My error message", L"Error", L"New Title", TEMP_LINE1, TEMP_LINE2);
    

Compilez et exécutez l'application.L'application affiche des boîtes de dialogue à deux tâches.La première boîte de dialogue est du pour ajouter des fonctionnalités à la procédure de CTaskDialog ; la seconde boîte de dialogue est de la dernière procédure.

Ces exemples ne montrent pas toutes les options disponibles pour CTaskDialog, mais doivent vous aider à démarrer.Consultez CTaskDialog, classe pour une description complète de la classe.

Voir aussi

Référence

CTaskDialog, classe

CTaskDialog::CTaskDialog

Concepts

Boîtes de dialogue