Partager via


Procédure pas à pas : ajout d’un CTaskDialog à une application

Cette procédure pas à pas présente la CTaskDialog classe et montre comment l’ajouter à votre application.

Il CTaskDialog s’agit d’une boîte de dialogue de tâche qui remplace la boîte de message Windows dans Windows Vista ou une version ultérieure. L’amélioration CTaskDialog de la boîte de message d’origine et ajoute des fonctionnalités. La boîte de message Windows est toujours prise en charge dans Visual Studio.

Remarque

Les versions de Windows antérieures à Windows Vista ne prennent pas en charge le CTaskDialog. Vous devez programmer une autre option de 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 un CTaskDialog. En outre, la CTaskDialog seule option est disponible lorsque votre application est générée avec la bibliothèque Unicode.

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

Conditions préalables

Vous avez besoin des composants suivants pour effectuer cette procédure pas à pas :

  • Visual Studio 2010 ou version ultérieure
  • Windows Vista ou version ultérieure

Remplacer la boîte de message Windows par un CTaskDialog

L’exemple suivant illustre l’utilisation la plus simple du CTaskDialogmessage Windows, qui consiste à remplacer la boîte de message Windows. Cet exemple modifie également l’icône associée à la boîte de dialogue de tâche. La modification de l’icône rend l’affichage CTaskDialog similaire à la boîte de message Windows.

  1. Utilisez l’Assistant Application MFC pour créer une application MFC (Microsoft Foundation Classes) avec tous les paramètres par défaut. Consultez la procédure pas à pas : utilisation des nouveaux contrôles Shell MFC pour obtenir des instructions sur l’ouverture de l’Assistant pour votre version de Visual Studio.

  2. Appelez-le MyProject.

  3. Utilisez l’Explorateur de solutions pour ouvrir MyProject.cpp.

  4. Ajoutez #include "afxtaskdialog.h" après la liste des éléments inclus.

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

    CString message("My message to the user");
    CString dialogTitle("My Task Dialog title");
    CString emptyString;
    
    // Check whether the user's computer supports `CTaskDialog`.
    // If not, display a Windows message box instead.
    if (CTaskDialog::IsSupported())
    {
        CTaskDialog taskDialog(message, emptyString, dialogTitle, TDCBF_OK_BUTTON);
        taskDialog.SetMainIcon(TD_WARNING_ICON); // Set the icon to be the same as the Windows message box
        taskDialog.DoModal();
    }
    else
    {
        AfxMessageBox(message);
    }
    

Compilez et exécutez l’application. L’application affiche la boîte de dialogue de tâche une fois qu’elle a démarré.

Ajouter des fonctionnalités au CTaskDialog

L’exemple suivant vous montre comment ajouter des fonctionnalités à celle CTaskDialog que vous avez créée dans la procédure précédente. L’exemple de code vous montre comment exécuter des instructions spécifiques en fonction des sélections de l’utilisateur.

  1. Accédez à l’affichage des ressources par le biais de l’affichage>d’autres ressources Windows>.

  2. Développez l’affichage des ressources dans le dossier Table de chaînes . Développez-le et double-cliquez sur Table de chaînes.

  3. Faites défiler jusqu’au bas de la table de chaînes et ajoutez une nouvelle entrée. Remplacez l’ID TEMP_LINE1par . Définissez la légende sur Command Line 1.

  4. Ajoutez une autre nouvelle entrée. Remplacez l’ID TEMP_LINE2par . Définissez la légende sur Command Line 2.

  5. Revenez à MyProject.cpp.

  6. Dans la CMyProjectApp::InitInstance() fonction, après CString emptyString; avoir ajouté 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 taskDialog.DoModal() et remplacez cette instruction par le code suivant. Ce code met à jour la boîte de dialogue 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 a small footnote to the user");
    taskDialog.SetVerificationCheckboxText(L"Remember your selection");
    INT_PTR result = taskDialog.DoModal();
    
    if (taskDialog.GetVerificationCheckboxState())
    {
        // Your code 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;
    }
    

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

Affichage d’un CTaskDialog sans créer d’objet CTaskDialog

L’exemple suivant montre comment afficher un CTaskDialog objet sans créer d’abord d’objet CTaskDialog . Cet exemple poursuit les procédures précédentes.

Pour afficher un CTaskDialog sans créer d’objet CTaskDialog

  1. Ouvrez le fichier MyProject.cpp .

  2. Dans la CMyProjectApp::InitInstance() fonction, accédez au crochet fermant de l’instruction if (CTaskDialog::IsSupported()) .

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

    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 deux boîtes de dialogue de tâche. La première boîte de dialogue provient de la procédure To Add Functionality à la procédure CTaskDialog ; la deuxième boîte de dialogue provient de la procédure précédente.

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

Voir aussi

boîtes de dialogue
CTaskDialog, classe
CTaskDialog ::CTaskDialog