Partager via


CTaskDialog, classe

Boîte de dialogue contextuelle qui fonctionne comme une boîte de message mais peut afficher des informations supplémentaires pour l'utilisateur. CTaskDialog inclut également les fonctionnalités nécessaires pour recueillir des informations auprès de l'utilisateur.

Syntaxe

class CTaskDialog : public CObject

Membres

Constructeurs

Nom Description
CTaskDialog ::CTaskDialog Construit un objet CTaskDialog.

Méthodes

Nom Description
CTaskDialog ::AddCommandControl Ajoute un contrôle de bouton de commande au CTaskDialog.
CTaskDialog ::AddRadioButton Ajoute une case d’option au CTaskDialog.
CTaskDialog ::ClickCommandControl Cliquez sur un contrôle de bouton de commande ou un bouton courant par programmation.
CTaskDialog ::ClickRadioButton Clique sur une case d’option par programmation.
CTaskDialog ::D oModal Affiche la CTaskDialog.
CTaskDialog ::GetCommonButtonCount Récupère le nombre de boutons courants disponibles.
CTaskDialog ::GetCommonButtonFlag Convertit un bouton Windows standard en type de bouton commun associé à la CTaskDialog classe.
CTaskDialog ::GetCommonButtonId Convertit l’un des types de boutons courants associés à la CTaskDialog classe en bouton Windows standard.
CTaskDialog ::GetOptions Retourne les indicateurs d’option pour ce CTaskDialog.
CTaskDialog ::GetSelectedCommandControlID Retourne le contrôle de bouton de commande sélectionné.
CTaskDialog ::GetSelectedRadioButtonID Retourne la case d’option sélectionnée.
CTaskDialog ::GetVerificationCheckboxState Récupère l’état de la case à cocher de vérification.
CTaskDialog ::IsCommandControlEnabled Détermine si un contrôle de bouton de commande ou un bouton commun est activé.
CTaskDialog ::IsRadioButtonEnabled Détermine si une case d’option est activée.
CTaskDialog ::IsSupported Détermine si l’ordinateur qui exécute l’application prend en charge le CTaskDialog.
CTaskDialog ::LoadCommandControls Ajoute des contrôles de bouton de commande à l’aide de données de la table de chaînes.
CTaskDialog ::LoadRadioButtons Ajoute des cases d’option à l’aide de données de la table de chaînes.
CTaskDialog ::NavigateTo Transfère le focus vers un autre CTaskDialog.
CTaskDialog ::OnCommandControlClick L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur un contrôle de bouton de commande.
CTaskDialog ::OnCreate L’infrastructure appelle cette méthode après avoir créé le CTaskDialog.
CTaskDialog ::OnDestroy L’infrastructure appelle cette méthode immédiatement avant de détruire le CTaskDialog.
CTaskDialog ::OnExpandButtonClick L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur le bouton d’extension.
CTaskDialog ::OnHelp L’infrastructure appelle cette méthode lorsque l’utilisateur demande de l’aide.
CTaskDialog ::OnHyperlinkClick L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur un lien hypertexte.
CTaskDialog ::OnInit L’infrastructure appelle cette méthode lors de l’initialisation CTaskDialog .
CTaskDialog ::OnNavigatePage L’infrastructure appelle cette méthode lorsque l’utilisateur déplace le focus en ce qui concerne les contrôles sur le CTaskDialog.
CTaskDialog ::OnRadioButtonClick L’infrastructure appelle cette méthode lorsque l’utilisateur sélectionne un contrôle de case d’option.
CTaskDialog ::OnTimer L’infrastructure appelle cette méthode lorsque le minuteur expire.
CTaskDialog ::OnVerificationCheckboxClick L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur la case à cocher de vérification.
CTaskDialog ::RemoveAllCommandControls Supprime tous les contrôles de commande de l’objet CTaskDialog.
CTaskDialog ::RemoveAllRadioButtons Supprime toutes les cases d’option du CTaskDialog.
CTaskDialog ::SetCommandControlOptions Met à jour un contrôle de bouton de commande sur le CTaskDialog.
CTaskDialog ::SetCommonButtonOptions Met à jour un sous-ensemble de boutons courants à activer et nécessite une élévation DAC.
CTaskDialog ::SetCommonButtons Ajoute des boutons courants au CTaskDialog.
CTaskDialog ::SetContent Met à jour le contenu du CTaskDialog.
CTaskDialog ::SetDefaultCommandControl Spécifie le contrôle de bouton de commande par défaut.
CTaskDialog ::SetDefaultRadioButton Spécifie la case d’option par défaut.
CTaskDialog ::SetDialogWidth Ajuste la largeur du CTaskDialog.
CTaskDialog ::SetExpansionArea Met à jour la zone d’expansion du CTaskDialog.
CTaskDialog ::SetFooterIcon Met à jour l’icône de pied de page pour le CTaskDialog.
CTaskDialog ::SetFooterText Met à jour le texte sur le pied de page du CTaskDialog.
CTaskDialog ::SetMainIcon Met à jour l’icône principale du CTaskDialog.
CTaskDialog ::SetMainInstruction Met à jour l’instruction principale du CTaskDialog.
CTaskDialog ::SetOptions Configure les options pour le CTaskDialog.
CTaskDialog ::SetProgressBarMarquee Configure une barre de marque pour la CTaskDialog boîte de dialogue et l’ajoute à la boîte de dialogue.
CTaskDialog ::SetProgressBarPosition Ajuste la position de la barre de progression.
CTaskDialog ::SetProgressBarRange Ajuste la plage de la barre de progression.
CTaskDialog ::SetProgressBarState Définit l’état de la barre de progression et l’affiche sur le CTaskDialog.
CTaskDialog ::SetRadioButtonOptions Active ou désactive une case d’option.
CTaskDialog ::SetVerificationCheckbox Définit l’état activé de la case à cocher de vérification.
CTaskDialog ::SetVerificationCheckboxText Définit le texte sur le côté droit de la case à cocher de vérification.
CTaskDialog ::SetWindowTitle Définit le titre du CTaskDialog.
CTaskDialog ::ShowDialog Crée et affiche un CTaskDialog.
CTaskDialog ::TaskDialogCallback L’infrastructure appelle ceci en réponse à différents messages Windows.

Données membres

Nom Description
m_aButtons Tableau de contrôles de bouton de commande pour le CTaskDialog.
m_aRadioButtons Tableau de contrôles de case d’option pour le CTaskDialog.
m_bVerified TRUE indique que la case à cocher de vérification est cochée ; FALSE indique qu’elle n’est pas.
m_footerIcon Icône dans le pied de page du CTaskDialog.
m_hWnd Handle vers la fenêtre pour le CTaskDialog.
m_mainIcon Icône principale du CTaskDialog.
m_nButtonDisabled Masque qui indique quels boutons courants sont désactivés.
m_nButtonElevation Masque qui indique quels boutons courants nécessitent une élévation de contrôle d’utilisateur.
m_nButtonId ID du contrôle de bouton de commande sélectionné.
m_nCommonButton Masque qui indique quels boutons courants sont affichés sur le CTaskDialog.
m_nDefaultCommandControl ID du contrôle de bouton de commande sélectionné lors de l’affichage CTaskDialog .
m_nDefaultRadioButton ID du contrôle de case d’option sélectionné lors de l’affichage CTaskDialog .
m_nFlags Masque qui indique les options pour le CTaskDialog.
m_nProgressPos Position actuelle de la barre de progression. Cette valeur doit être comprise entre m_nProgressRangeMin et m_nProgressRangeMax.
m_nProgressRangeMax Valeur maximale de la barre de progression.
m_nProgressRangeMin Valeur minimale de la barre de progression.
m_nProgressState État de la barre de progression. Pour plus d’informations, consultez CTaskDialog ::SetProgressBarState.
m_nRadioId ID du contrôle de case d’option sélectionné.
m_nWidth Largeur du CTaskDialog en pixels.
m_strCollapse Chaîne affichée CTaskDialog à droite de la zone d’expansion lorsque les informations développées sont masquées.
m_strContent Chaîne de contenu du CTaskDialog.
m_strExpand Chaîne affichée CTaskDialog à droite de la zone d’expansion lorsque les informations développées sont affichées.
m_strFooter Pied de page du CTaskDialog.
m_strInformation Informations développées pour le CTaskDialog.
m_strMainInstruction L’instruction principale du CTaskDialog.
m_strTitle Le titre du CTaskDialog.
m_strVerification Chaîne affichée CTaskDialog à droite de la case à cocher de vérification.

Notes

La CTaskDialog classe remplace la boîte de message Windows standard et dispose de fonctionnalités supplémentaires telles que de nouveaux contrôles pour collecter des informations auprès de l’utilisateur. Cette classe se trouve dans la bibliothèque MFC dans Visual Studio 2010 et versions ultérieures. Il CTaskDialog est disponible à partir de Windows Vista. Les versions antérieures de Windows ne peuvent pas afficher l’objet CTaskDialog . Permet CTaskDialog::IsSupported de déterminer au moment de l’exécution si l’utilisateur actuel peut afficher la boîte de dialogue de tâche. La boîte de message Windows standard est toujours prise en charge.

Il CTaskDialog est disponible uniquement lorsque vous générez votre application à l’aide de la bibliothèque Unicode.

Il CTaskDialog a deux constructeurs différents. Un constructeur vous permet de spécifier deux boutons de commande et un maximum de six contrôles de bouton standard. Vous pouvez ajouter d’autres boutons de commande après avoir créé le CTaskDialog. Le deuxième constructeur ne prend pas en charge les boutons de commande, mais vous pouvez ajouter un nombre illimité de contrôles de bouton standard. Pour plus d’informations sur les constructeurs, consultez CTaskDialog ::CTaskDialog.

L’image suivante montre un exemple CTaskDialog pour illustrer l’emplacement de certains contrôles.

Exemple de CTaskDialog.
Exemple CTaskDialog

Spécifications

Système d’exploitation minimum requis : Windows Vista

En-tête : afxtaskdialog.h

CTaskDialog ::AddCommandControl

Ajoute un nouveau contrôle de bouton de commande au CTaskDialog.

void AddCommandControl(
    int nCommandControlID,
    const CString& strCaption,
    BOOL bEnabled = TRUE,
    BOOL bRequiresElevation = FALSE);

Paramètres

nCommandControlID
[in] Numéro d’identification du contrôle de commande.

strCaption
[in] Chaîne affichée CTaskDialog à l’utilisateur. Utilisez cette chaîne pour expliquer l’objectif de la commande.

bEnabled
[in] Paramètre booléen qui indique si le nouveau bouton est activé ou désactivé.

bRequiresElevation
[in] Paramètre booléen qui indique si une commande nécessite une élévation.

Notes

Le CTaskDialog Class bouton peut afficher un nombre illimité de contrôles de bouton de commande. Toutefois, si un bouton de commande affiche des CTaskDialog contrôles de bouton de commande, il peut afficher un maximum de six boutons. Si aucun CTaskDialog contrôle de bouton de commande n’est disponible, il peut afficher un nombre illimité de boutons.

Lorsque l’utilisateur sélectionne un contrôle de bouton de commande, la CTaskDialog fermeture est terminée. Si votre application affiche la boîte de dialogue à l’aide de CTaskDialog ::D oModal, DoModal retourne le nCommandControlID du contrôle de bouton de commande sélectionné.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog ::AddRadioButton

Ajoute une case d’option au CTaskDialog.

void CTaskDialog::AddRadioButton(
    int nRadioButtonID,
    const CString& strCaption,
    BOOL bEnabled = TRUE);

Paramètres

nRadioButtonID
[in] Numéro d’identification de la case d’option.

strCaption
[in] Chaîne affichée CTaskDialog en regard de la case d’option.

bEnabled
[in] Paramètre booléen qui indique si la case d’option est activée.

Notes

Les cases d’option de la classe CTaskDialog vous permettent de recueillir des informations à partir de l’utilisateur. Utilisez la fonction CTaskDialog ::GetSelectedRadioButtonID pour déterminer la case d’option sélectionnée.

Les CTaskDialog paramètres nRadioButtonID ne sont pas obligatoires pour chaque case d’option. Toutefois, vous pouvez rencontrer un comportement inattendu si vous n’utilisez pas d’identificateur distinct pour chaque case d’option.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog ::ClickCommandControl

Cliquez sur un contrôle de bouton de commande ou un bouton courant par programmation.

protected:
void ClickCommandControl(int nCommandControlID) const;

Paramètres

nCommandControlID
[in] ID de commande du contrôle à cliquer.

Notes

Cette méthode génère le message Windows TDM_CLICK_BUTTON.

CTaskDialog ::ClickRadioButton

Clique sur une case d’option par programmation.

protected:
void ClickRadioButton(int nRadioButtonID) const;

Paramètres

nRadioButtonID
[in] ID de la case d’option à cliquer.

Notes

Cette méthode génère le message Windows TDM_CLICK_RADIO_BUTTON.

CTaskDialog ::CTaskDialog

Crée une instance de la classe CTaskDialog.

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nCommonButtons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

Paramètres

strContent
[in] Chaîne à utiliser pour le contenu du CTaskDialog.

strMainInstruction
[in] L’instruction principale du CTaskDialog.

strTitle
[in] Le titre du CTaskDialog.

nCommonButtons
[in] Masque des boutons courants à ajouter au CTaskDialog.

nTaskDialogOptions
[in] Ensemble d’options à utiliser pour le CTaskDialog.

strFooter
[in] Chaîne à utiliser comme pied de page.

nIDCommandControlsFirst
[in] ID de chaîne de la première commande.

nIDCommandControlsLast
[in] ID de chaîne de la dernière commande.

Notes

Il existe deux façons d’ajouter un CTaskDialog à votre application. La première façon consiste à utiliser l’un des constructeurs pour créer et CTaskDialog l’afficher à l’aide de CTaskDialog ::D oModal. La deuxième méthode consiste à utiliser la fonction statique CTaskDialog ::ShowDialog, qui vous permet d’afficher un CTaskDialog objet sans créer explicitement d’objet CTaskDialog .

Le deuxième constructeur crée des contrôles de bouton de commande à l’aide de données à partir du fichier de ressources de votre application. La table de chaînes du fichier de ressources comporte plusieurs chaînes avec des ID de chaîne associés. Cette méthode ajoute un contrôle de bouton de commande pour chaque entrée valide dans la table de chaînes entre nIDCommandControlsFirst et nCommandControlsLast, inclus. Pour ces contrôles de bouton de commande, la chaîne de la table de chaînes est la légende du contrôle et l’ID de chaîne est l’ID du contrôle.

Consultez CTaskDialog ::SetOptions pour obtenir la liste des options valides .

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::D oModal

Affiche et CTaskDialog le rend modal.

INT_PTR DoModal (HWND hParent = ::GetActiveWindow());

Paramètres

hParent
[in] Fenêtre parente pour le CTaskDialog.

Valeur de retour

Entier qui correspond à la sélection effectuée par l’utilisateur.

Notes

Affiche cette instance de CTaskDialog. L’application attend ensuite que l’utilisateur ferme la boîte de dialogue.

La CTaskDialog fermeture se ferme lorsque l’utilisateur sélectionne un bouton commun, un contrôle de lien de commande ou ferme le CTaskDialog. La valeur de retour est l’identificateur qui indique comment l’utilisateur a fermé la boîte de dialogue.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::GetCommonButtonCount

Récupère le nombre de boutons courants.

int GetCommonButtonCount() const;

Valeur de retour

Nombre de boutons courants disponibles.

Notes

Les boutons courants sont les boutons par défaut que vous fournissez à CTaskDialog ::CTaskDialog. La classe CTaskDialog affiche les boutons le long du bas de la boîte de dialogue.

La liste énumérée des boutons est fournie dans CommCtrl.h.

CTaskDialog ::GetCommonButtonFlag

Convertit un bouton Windows standard en type de bouton commun associé à la classe CTaskDialog.

int GetCommonButtonFlag(int nButtonId) const;

Paramètres

nButtonId
[in] Valeur de bouton Windows standard.

Valeur de retour

Valeur du bouton commun correspondant CTaskDialog . S’il n’existe aucun bouton commun correspondant, cette méthode retourne 0.

CTaskDialog ::GetCommonButtonId

Convertit l’un des types de boutons courants associés à la classe CTaskDialog en un bouton Windows standard.

int GetCommonButtonId(int nFlag);

Paramètres

nFlag
[in] Type de bouton commun associé à la CTaskDialog classe.

Valeur de retour

Valeur du bouton Windows standard correspondant. S’il n’existe aucun bouton Windows correspondant, la méthode retourne 0.

CTaskDialog ::GetOptions

Retourne les indicateurs d’option pour ce CTaskDialog.

int GetOptions() const;

Valeur de retour

Indicateurs pour le CTaskDialog.

Notes

Pour plus d’informations sur les options disponibles pour la classe CTaskDialog, consultez CTaskDialog ::SetOptions.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::GetSelectedCommandControlID

Retourne le contrôle de bouton de commande sélectionné.

int GetSelectedCommandControlID() const;

Valeur de retour

ID du contrôle de bouton de commande actuellement sélectionné.

Notes

Vous n’avez pas besoin d’utiliser cette méthode pour récupérer l’ID du bouton de commande sélectionné par l’utilisateur. Cet ID est retourné par CTaskDialog ::D oModal ou CTaskDialog ::ShowDialog.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog ::GetSelectedRadioButtonID

Retourne la case d’option sélectionnée.

int GetSelectedRadioButtonID() const;

Valeur de retour

ID de la case d’option sélectionnée.

Notes

Vous pouvez utiliser cette méthode une fois que l’utilisateur ferme la boîte de dialogue pour récupérer la case d’option sélectionnée.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog ::GetVerificationCheckboxState

Récupère l’état de la case à cocher de vérification.

BOOL GetVerificationCheckboxState() const;

Valeur de retour

TRUE si la case à cocher est cochée, FALSE si ce n’est pas le cas.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog ::IsCommandControlEnabled

Détermine si un contrôle de bouton de commande ou un bouton est activé.

BOOL IsCommandControlEnabled(int nCommandControlID) const;

Paramètres

nCommandControlID
[in] ID du contrôle de bouton de commande ou du bouton à tester.

Valeur de retour

TRUE si le contrôle est activé, FALSE s’il ne l’est pas.

Notes

Vous pouvez utiliser cette méthode pour déterminer la disponibilité des contrôles de bouton de commande et des boutons courants de la CTaskDialog classe*.

Si nCommandControlID n’est pas un identificateur valide pour un bouton commun CTaskDialog ou un contrôle de bouton de commande, cette méthode lève une exception.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog ::IsRadioButtonEnabled

Détermine si une case d’option est activée.

BOOL IsRadioButtonEnabled(int nRadioButtonID) const;

Paramètres

nRadioButtonID
[in] ID de la case d’option à tester.

Valeur de retour

TRUE si la case d’option est activée, FALSE si ce n’est pas le cas.

Notes

Si nRadioButtonID n’est pas un identificateur valide pour une case d’option, cette méthode lève une exception.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog ::IsSupported

Détermine si l’ordinateur qui exécute l’application prend en charge le CTaskDialog.

static BOOL IsSupported();

Valeur de retour

TRUE si l’ordinateur prend en charge le CTaskDialog; FALSE dans le cas contraire.

Notes

Utilisez cette fonction pour déterminer au moment de l’exécution si l’ordinateur qui exécute votre application prend en charge la CTaskDialog classe. Si l’ordinateur ne prend pas en charge, CTaskDialogvous devez fournir une autre méthode de communication des informations à l’utilisateur. Votre application se bloque si elle tente d’utiliser un CTaskDialog ordinateur qui ne prend pas en charge la CTaskDialog classe.

Exemple

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog ::LoadCommandControls

Ajoute des contrôles de bouton de commande à l’aide de données de la table de chaînes.

void LoadCommandControls(
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast);

Paramètres

nIDCommandControlsFirst
[in] ID de chaîne de la première commande.

nIDCommandControlsLast
[in] ID de chaîne de la dernière commande.

Notes

Cette méthode crée des contrôles de bouton de commande à l’aide de données à partir du fichier de ressources de votre application. La table de chaînes du fichier de ressources comporte plusieurs chaînes avec des ID de chaîne associés. Les nouveaux contrôles de bouton de commande ajoutés à l’aide de cette méthode utilisent la chaîne pour la légende du contrôle et l’ID de chaîne de l’ID du contrôle. La plage de chaînes sélectionnées est fournie par nIDCommandControlsFirst et nCommandControlsLast, inclus. S’il existe une entrée vide dans la plage, la méthode n’ajoute pas de contrôle de bouton de commande pour cette entrée.

Par défaut, les nouveaux contrôles de bouton de commande sont activés et ne nécessitent pas d’élévation.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog ::LoadRadioButtons

Ajoute des contrôles de case d’option à l’aide de données de la table de chaînes.

void LoadRadioButtons(
    int nIDRadioButtonsFirst,
    int nIDRadioButtonsLast);

Paramètres

nIDRadioButtonsFirst
[in] ID de chaîne du premier bouton d’option.

nIDRadioButtonsLast
[in] ID de chaîne de la dernière case d’option.

Notes

Cette méthode crée des cases d’option à l’aide de données à partir du fichier de ressources de votre application. La table de chaînes du fichier de ressources comporte plusieurs chaînes avec des ID de chaîne associés. Les nouvelles cases d’option ajoutées à l’aide de cette méthode utilisent la chaîne pour la légende de la case d’option et l’ID de chaîne de l’ID de la case d’option. La plage de chaînes sélectionnées est fournie par nIDRadioButtonsFirst et nRadioButtonsLast, inclus. S’il existe une entrée vide dans la plage, la méthode n’ajoute pas de case d’option pour cette entrée.

Par défaut, les nouvelles cases d’option sont activées.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

Transfère le focus vers un autre CTaskDialog.

protected:
void NavigateTo(CTaskDialog& oTaskDialog) const;

Paramètres

oTaskDialog
[in] Qui CTaskDialog reçoit le focus.

Notes

Cette méthode masque le courant CTaskDialog lorsqu’il affiche l’oTaskDialog. L’oTaskDialog est affiché dans le même emplacement que le fichier actif CTaskDialog.

CTaskDialog ::OnCommandControlClick

L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur un contrôle de bouton de commande.

virtual HRESULT OnCommandControlClick(int nCommandControlID);

Paramètres

nCommandControlID
[in] ID du contrôle du bouton de commande sélectionné par l’utilisateur.

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnCreate

L’infrastructure appelle cette méthode après avoir créé le CTaskDialog.

virtual HRESULT OnCreate();

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnDestroy

L’infrastructure appelle cette méthode immédiatement avant de détruire le CTaskDialog.

virtual HRESULT OnDestroy();

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnExpandButtonClick

L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur le bouton d’extension.

virtual HRESULT OnExpandButtonClicked(BOOL bExpanded);

Paramètres

bExpanded
[in] Une valeur différente de zéro indique que les informations supplémentaires sont affichées ; 0 indique que les informations supplémentaires sont masquées.

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnHelp

L’infrastructure appelle cette méthode lorsque l’utilisateur demande de l’aide.

virtual HRESULT OnHelp();

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnHyperlinkClick

L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur un lien hypertexte.

virtual HRESULT OnHyperlinkClick(const CString& strHref);

Paramètres

strHref
[in] Chaîne qui représente le lien hypertexte.

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Cette méthode appelle ShellExecute avant de renvoyer S_OK.

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnInit

L’infrastructure appelle cette méthode lors de l’initialisation CTaskDialog .

virtual HRESULT OnInit();

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnNavigatePage

L’infrastructure appelle cette méthode en réponse à la méthode CTaskDialog ::NavigateTo .

virtual HRESULT OnNavigatePage();

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnRadioButtonClick

L’infrastructure appelle cette méthode lorsque l’utilisateur sélectionne un contrôle de case d’option.

virtual HRESULT OnRadioButtonClick(int nRadioButtonID);

Paramètres

nRadioButtonID
[in] ID du contrôle de case d’option sur lequel l’utilisateur a cliqué.

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnTimer

L’infrastructure appelle cette méthode lorsque le minuteur expire.

virtual HRESULT OnTimer(long lTime);

Paramètres

lTime
[in] Durée en millisecondes depuis la CTaskDialog création ou la réinitialisation du minuteur.

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::OnVerificationCheckboxClick

L’infrastructure appelle cette méthode lorsque l’utilisateur clique sur la case à cocher de vérification.

virtual HRESULT OnVerificationCheckboxClick(BOOL bChecked);

Paramètres

bChecked
[in] TRUE indique que la case à cocher de vérification est cochée ; FALSE indique que ce n’est pas le cas.

Valeur de retour

L’implémentation par défaut retourne S_OK.

Notes

Remplacez cette méthode dans une classe dérivée pour implémenter un comportement personnalisé.

CTaskDialog ::RemoveAllCommandControls

Supprime tous les contrôles du bouton de commande du CTaskDialog.

void RemoveAllCommandControls();

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog ::RemoveAllRadioButtons

Supprime toutes les cases d’option du CTaskDialog.

void RemoveAllRadioButtons();

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog ::SetCommandControlOptions

Met à jour un contrôle de bouton de commande sur le CTaskDialog.

void SetCommandControlOptions(
    int nCommandControlID,
    BOOL bEnabled,
    BOOL bRequiresElevation = FALSE);

Paramètres

nCommandControlID
[in] ID du contrôle de commande à mettre à jour.

bEnabled
[in] Paramètre booléen qui indique si le contrôle de bouton de commande spécifié est activé ou désactivé.

bRequiresElevation
[in] Paramètre booléen qui indique si le contrôle de bouton de commande spécifié nécessite une élévation.

Notes

Utilisez cette méthode pour modifier si un contrôle de bouton de commande est activé ou nécessite une élévation une fois qu’il a été ajouté à la CTaskDialog classe.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog ::SetCommonButtonOptions

Met à jour un sous-ensemble de boutons courants à activer et pour exiger une élévation de contrôle d’accès utilisateur.

void SetCommonButtonOptions(
    int nDisabledButtonMask,
    int nElevationButtonMask = 0);

Paramètres

nDisabledButtonMask
[in] Masque pour les boutons courants à désactiver.

nElevationButtonMask
[in] Masque pour les boutons courants qui nécessitent une élévation.

Notes

Vous pouvez définir les boutons courants disponibles pour une instance de la classe CTaskDialog à l’aide du constructeur CTaskDialog ::CTaskDialog et de la méthode CTaskDialog ::SetCommonButtons. CTaskDialog::SetCommonButtonOptions ne prend pas en charge l’ajout de nouveaux boutons courants.

Si vous utilisez cette méthode pour désactiver ou élever un bouton commun qui n’est pas disponible pour cela CTaskDialog, cette méthode lève une exception à l’aide de la macro ENSURE .

Cette méthode active nDisabledButtonMask tous les boutons disponibles, CTaskDialog mais pas dans le fichier nDisabledButtonMask, même s’il a été précédemment désactivé. Cette méthode traite l’élévation de la même manière : elle enregistre les boutons courants comme ne nécessitant pas d’élévation si le bouton commun est disponible, mais n’est pas inclus dans nElevationButtonMask.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog ::SetCommonButtons

Ajoute des boutons courants au CTaskDialog.

void SetCommonButtons(
    int nButtonMask,
    int nDisabledButtonMask = 0,
    int nElevationButtonMask = 0);

Paramètres

nButtonMask
[in] Masque des boutons à ajouter au CTaskDialog.

nDisabledButtonMask
[in] Masque des boutons à désactiver.

nElevationButtonMask
[in] Masque des boutons qui nécessitent une élévation.

Notes

Vous ne pouvez pas appeler cette méthode après la création de la fenêtre d’affichage de cette instance de la CTaskDialog classe. Si vous le faites, cette méthode lève une exception.

Les boutons indiqués par nButtonMask remplacent tous les boutons courants précédemment ajoutés au CTaskDialogfichier . Seuls les boutons indiqués dans nButtonMask sont disponibles.

Si nDisabledButtonMask ou nElevationButtonMask contiennent un bouton qui n’est pas dans nButtonMask, cette méthode lève une exception à l’aide de la macro ENSURE.

Par défaut, tous les boutons courants sont activés et ne nécessitent pas d’élévation.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog ::SetContent

Met à jour le contenu du CTaskDialog.

void SetContent(const CString& strContent);

Paramètres

strContent
[in] Chaîne à afficher à l’utilisateur.

Notes

Le contenu de la CTaskDialog classe est le texte affiché à l’utilisateur dans la section principale de la boîte de dialogue.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetDefaultCommandControl

Spécifie le contrôle de bouton de commande par défaut.

void SetDefaultCommandControl(int nCommandControlID);

Paramètres

nCommandControlID
[in] ID du contrôle de bouton de commande pour être la valeur par défaut.

Notes

Le contrôle de bouton de commande par défaut est le contrôle sélectionné lors de la CTaskDialog première affichage de l’utilisateur.

Cette méthode lève une exception si elle ne trouve pas le contrôle de bouton de commande spécifié par nCommandControlID.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog ::SetDefaultRadioButton

Spécifie la case d’option par défaut.

void SetDefaultRadioButton(int nRadioButtonID);

Paramètres

nRadioButtonID
[in] ID de la case d’option correspondant à la valeur par défaut.

Notes

La case d’option par défaut est le bouton sélectionné lors de la CTaskDialog première affichage de l’utilisateur.

Cette méthode lève une exception si elle ne trouve pas la case d’option spécifiée par nRadioButtonID.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog ::SetDialogWidth

Ajuste la largeur du CTaskDialog.

void SetDialogWidth(int nWidth = 0);

Paramètres

nWidth
[in] Largeur de la boîte de dialogue, en pixels.

Notes

Le paramètre nWidth doit être supérieur ou égal à 0. Sinon, cette méthode lève une exception.

Si nWidth est défini sur 0, cette méthode définit la boîte de dialogue sur la taille par défaut.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetExpansionArea

Met à jour la zone d’expansion du CTaskDialog.

void SetExpansionArea(
    const CString& strExpandedInformation,
    const CString& strCollapsedLabel = _T(""),
    const CString& strExpandedLabel = _T(""));

Paramètres

strExpandedInformation
[in] Chaîne affichée CTaskDialog dans le corps principal de la boîte de dialogue lorsque l’utilisateur clique sur le bouton d’expansion.

strCollapsedLabel
[in] Chaîne affichée CTaskDialog en regard du bouton d’extension lorsque la zone développée est réduite.

strExpandedLabel
[in] Chaîne affichée CTaskDialog en regard du bouton d’expansion lorsque la zone développée est affichée.

Notes

La zone d’expansion de la CTaskDialog classe vous permet de fournir des informations supplémentaires à l’utilisateur. La zone d’expansion se trouve dans la partie principale du CTaskDialog, située immédiatement sous le titre et la chaîne de contenu.

Lorsque le CTaskDialog premier s’affiche, il n’affiche pas les informations développées et met strCollapsedLabel en regard du bouton d’extension. Lorsque l’utilisateur clique sur le bouton d’expansion, l’affichage CTaskDialog de strExpandedInformation et modifie l’étiquette en strExpandedLabel.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetFooterIcon

Met à jour l’icône de pied de page du CTaskDialog.

void SetFooterIcon(HICON hFooterIcon);
void SetFooterIcon(LPCWSTR lpszFooterIcon);

Paramètres

hFooterIcon
[in] Nouvelle icône pour le CTaskDialog.

lpszFooterIcon
[in] Nouvelle icône pour le CTaskDialog.

Notes

L’icône de pied de page s’affiche en bas de la classe CTaskDialog. Il peut avoir du texte de pied de page associé. Vous pouvez modifier le texte du pied de page avec CTaskDialog ::SetFooterText.

Cette méthode lève une exception avec la macro ENSURE si le CTaskDialog paramètre d’entrée est affiché ou null.

A CTaskDialog ne peut accepter qu’une HICON icône de pied de page ou LPCWSTR un pied de page. Cette option est configurée en définissant l’option TDF_USE_HICON_FOOTER dans le constructeur ou CTaskDialog ::SetOptions. Par défaut, il CTaskDialog est configuré pour être utilisé LPCWSTR comme type d’entrée pour l’icône de pied de page. Cette méthode génère une exception si vous essayez de définir l’icône à l’aide du type inapproprié.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetFooterText

Met à jour le texte sur le pied de page du CTaskDialog.

void SetFooterText(const CString& strFooterText);

Paramètres

strFooterText
[in] Nouveau texte du pied de page.

Notes

L’icône de pied de page apparaît en regard du texte du pied de page en bas du CTaskDialog. Vous pouvez modifier l’icône de pied de page avec CTaskDialog ::SetFooterIcon.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetMainIcon

Met à jour l’icône principale du CTaskDialog.

void SetMainIcon(HICON hMainIcon);
void SetMainIcon(LPCWSTR lpszMainIcon);

Paramètres

hMainIcon
[in] Nouvelle icône.

lpszMainIcon
[in] Nouvelle icône.

Notes

Cette méthode lève une exception avec la macro ENSURE si le CTaskDialog paramètre d’entrée est affiché ou null.

A CTaskDialog ne peut accepter qu’une HICON icône principale ou LPCWSTR une icône principale. Vous pouvez le configurer en définissant l’option TDF_USE_HICON_MAIN dans le constructeur ou dans la méthode CTaskDialog ::SetOptions . Par défaut, il CTaskDialog est configuré pour être utilisé LPCWSTR comme type d’entrée pour l’icône principale. Cette méthode génère une exception si vous essayez de définir l’icône à l’aide du type inapproprié.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetMainInstruction

Met à jour l’instruction principale du CTaskDialog.

void SetMainInstruction(const CString& strInstructions);

Paramètres

strInstructions
[in] Nouvelle instruction principale.

Notes

L’instruction principale de la CTaskDialog classe est le texte affiché à l’utilisateur dans une police en gras volumineux. Elle se trouve dans la boîte de dialogue située sous la barre de titre.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetOptions

Configure les options pour le CTaskDialog.

void SetOptions(int nOptionFlag);

Paramètres

nOptionFlag
[in] Ensemble d’indicateurs à utiliser pour le CTaskDialog.

Notes

Cette méthode efface toutes les options actuelles pour le CTaskDialog. Pour conserver les options actuelles, vous devez d’abord les récupérer avec CTaskDialog ::GetOptions et les combiner avec les options que vous souhaitez définir.

Le tableau suivant répertorie toutes les options valides.

Nom Description
TDF_ENABLE_HYPERLINKS Active les liens hypertexte dans le CTaskDialog.
TDF_USE_HICON_MAIN Configure l’option CTaskDialog à utiliser HICON pour l’icône principale. L’alternative consiste à utiliser un LPCWSTR.
TDF_USE_HICON_FOOTER Configure l’option CTaskDialog à utiliser HICON pour l’icône de pied de page. L’alternative consiste à utiliser un LPCWSTR.
TDF_ALLOW_DIALOG_CANCELLATION Permet à l’utilisateur de fermer CTaskDialog le clavier à l’aide du clavier ou en utilisant l’icône dans le coin supérieur droit de la boîte de dialogue, même si le bouton Annuler n’est pas activé. Si cet indicateur n’est pas défini et que le bouton Annuler n’est pas activé, l’utilisateur ne peut pas fermer la boîte de dialogue à l’aide de Alt+F4, de la touche d’échappement ou du bouton fermer de la barre de titre.
TDF_USE_COMMAND_LINKS Configure l’utilisation CTaskDialog des contrôles de bouton de commande.
TDF_USE_COMMAND_LINKS_NO_ICON Configure l’utilisation CTaskDialog des contrôles de bouton de commande sans afficher une icône en regard du contrôle. TDF_USE_COMMAND_LINKS remplace TDF_USE_COMMAND_LINKS_NO_ICON.
TDF_EXPAND_FOOTER_AREA Indique que la zone d’expansion est actuellement développée.
TDF_EXPANDED_BY_DEFAULT Détermine si la zone d’expansion est développée par défaut.
TDF_VERIFICATION_FLAG_CHECKED Indique que la case à cocher de vérification est actuellement cochée.
TDF_SHOW_PROGRESS_BAR Configure la CTaskDialog barre de progression pour afficher une barre de progression.
TDF_SHOW_MARQUEE_PROGRESS_BAR Configure la barre de progression pour qu’elle soit une barre de progression de marque. Si vous activez cette option, vous devez définir TDF_SHOW_PROGRESS_BAR pour avoir le comportement attendu.
TDF_CALLBACK_TIMER Indique que l’intervalle de CTaskDialog rappel est défini sur environ 200 millisecondes.
TDF_POSITION_RELATIVE_TO_WINDOW Configure la CTaskDialog valeur à centrer par rapport à la fenêtre parente. Si cet indicateur n’est pas activé, celui-ci CTaskDialog est centré par rapport au moniteur.
TDF_RTL_LAYOUT Configure la CTaskDialog disposition de lecture de droite à gauche.
TDF_NO_DEFAULT_RADIO_BUTTON Indique qu’aucune case d’option n’est sélectionnée lorsque l’affichage CTaskDialog s’affiche.
TDF_CAN_BE_MINIMIZED Permet à l’utilisateur de réduire le CTaskDialog. Pour prendre en charge cette option, elle CTaskDialog ne peut pas être modale. MFC ne prend pas en charge cette option, car MFC ne prend pas en charge un modeless CTaskDialog.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::SetProgressBarMarquee

Configure une barre de marque pour la CTaskDialog boîte de dialogue et l’ajoute à la boîte de dialogue.

void SetProgressBarMarquee(
    BOOL bEnabled = TRUE,
    int nMarqueeSpeed = 0);

Paramètres

bEnabled
[in] TRUE pour activer la barre de marque ; FALSE pour désactiver la barre de marque et la supprimer de la barre CTaskDialog.

nMarqueeSpeed
[in] Entier qui indique la vitesse de la barre de marque.

Notes

La barre de marque apparaît sous le texte principal de la CTaskDialog classe.

Utilisez nMarqueeSpeed pour définir la vitesse de la barre de marque ; les valeurs supérieures indiquent une vitesse plus lente. La valeur 0 pour nMarqueeSpeed déplace la barre de marque à la vitesse par défaut pour Windows.

Cette méthode lève une exception avec la macro ENSURE si nMarqueeSpeed est inférieur à 0.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog ::SetProgressBarPosition

Ajuste la position de la barre de progression.

void SetProgressBarPosition(int nProgressPos);

Paramètres

nProgressPos
[in] Position de la barre de progression.

Notes

Cette méthode lève une exception avec la macro ENSURE si nProgressPos n’est pas dans la plage de barres de progression. Vous pouvez modifier la plage de barres de progression avec CTaskDialog ::SetProgressBarRange.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog ::SetProgressBarRange

Ajuste la plage de la barre de progression.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

Paramètres

nRangeMin
[in] Limite inférieure de la barre de progression.

nRangeMax
[in] Limite supérieure de la barre de progression.

Notes

La position de la barre de progression est relative à nRangeMin et nRangeMax. Par exemple, si nRangeMin est 50 et nRangeMax est 100, une position de 75 est à mi-chemin dans la barre de progression. Utilisez CTaskDialog ::SetProgressBarPosition pour définir la position de la barre de progression.

Pour afficher la barre de progression, l’option TDF_SHOW_PROGRESS_BAR doit être activée et TDF_SHOW_MARQUEE_PROGRESS_BAR ne doit pas être activée. Cette méthode définit automatiquement TDF_SHOW_PROGRESS_BAR et efface TDF_SHOW_MARQUEE_PROGRESS_BAR. Utilisez CTaskDialog ::SetOptions pour modifier manuellement les options de cette instance de la classe CTaskDialog.

Cette méthode lève une exception avec la macro ENSURE si nRangeMin n’est pas inférieur à nRangeMax. Cette méthode lève également une exception si elle CTaskDialog est déjà affichée et a une barre de progression de marque.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog ::SetProgressBarState

Définit l’état de la barre de progression et l’affiche sur le CTaskDialog.

void SetProgressBarState(int nState = PBST_NORMAL);

Paramètres

nState
[in] État de la barre de progression. Consultez la section Remarques pour connaître les valeurs possibles.

Notes

Cette méthode lève une exception avec la macro ENSURE si elle CTaskDialog est déjà affichée et a une barre de progression de marque.

Le tableau suivant répertorie les valeurs possibles pour nState. Dans tous ces cas, la barre de progression remplira la couleur normale jusqu’à ce qu’elle atteigne la position d’arrêt désignée. À ce stade, il modifie la couleur en fonction de l’état.

Nom Description
PBST_NORMAL Une fois la barre de progression remplie, la CTaskDialog barre de progression ne change pas la couleur de la barre. Par défaut, la couleur normale est verte.
PBST_ERROR Une fois la barre de progression remplie, la CTaskDialog couleur de la barre devient la couleur d’erreur. Par défaut, il s’agit de rouge.
PBST_PAUSED Une fois la barre de progression remplie, la CTaskDialog couleur de la barre devient la couleur suspendue. Par défaut, il s’agit d’un jaune.

Vous pouvez définir l’emplacement où la barre de progression s’arrête avec CTaskDialog ::SetProgressBarPosition.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog ::SetRadioButtonOptions

Active ou désactive une case d’option.

void SetRadioButtonOptions(
    int nRadioButtonID,
    BOOL bEnabled);

Paramètres

nRadioButtonID
[in] ID du contrôle de case d’option.

bEnabled
[in] TRUE pour activer la case d’option ; FALSE pour désactiver la case d’option.

Notes

Cette méthode lève une exception avec la macro ENSURE si nRadioButtonID n’est pas un ID valide pour une case d’option.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog ::SetVerificationCheckbox

Définit l’état activé de la case à cocher de vérification.

void SetVerificationCheckbox(BOOL bChecked);

Paramètres

bChecked
[in] TRUE pour que la case à cocher de vérification soit cochée lors de l’affichage CTaskDialog ; FALSE pour que la case à cocher de vérification ne soit pas cochée lorsque celle-ci CTaskDialog est affichée.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog ::SetVerificationCheckboxText

Définit le texte affiché à droite de la case à cocher de vérification.

void SetVerificationCheckboxText(CString& strVerificationText);

Paramètres

strVerificationText
[in] Texte affiché par cette méthode en regard de la case à cocher de vérification.

Notes

Cette méthode lève une exception avec la macro ENSURE si cette instance de la CTaskDialog classe est déjà affichée.

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog ::SetWindowTitle

Définit le titre du CTaskDialog.

void SetWindowTitle(CString& strWindowTitle);

Paramètres

strWindowTitle
[in] Nouveau titre pour le CTaskDialog.

Notes

Exemple

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog ::ShowDialog

Crée et affiche un CTaskDialog.

static INT_PTR ShowDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons = TDCBF_YES_BUTTON | TDCBF_NO_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

Paramètres

strContent
[in] Chaîne à utiliser pour le contenu du CTaskDialog.

strMainInstruction
[in] L’instruction principale du CTaskDialog.

strTitle
[in] Le titre du CTaskDialog.

nIDCommandControlsFirst
[in] ID de chaîne de la première commande.

nIDCommandControlsLast
[in] ID de chaîne de la dernière commande.

nCommonButtons
[in] Masque des boutons à ajouter au CTaskDialog.

nTaskDialogOptions
[in] Ensemble d’options à utiliser pour le CTaskDialog.

strFooter
[in] Chaîne à utiliser comme pied de page.

Valeur de retour

Entier qui correspond à la sélection effectuée par l’utilisateur.

Notes

Cette méthode statique vous permet de créer une instance de la CTaskDialog classe sans créer explicitement d’objet CTaskDialog dans votre code. Étant donné qu’il n’existe aucun CTaskDialog objet, vous ne pouvez pas appeler d’autres méthodes de la CTaskDialog méthode si vous utilisez cette méthode pour afficher un CTaskDialog objet à l’utilisateur.

Cette méthode crée des contrôles de bouton de commande à l’aide de données à partir du fichier de ressources de votre application. La table de chaînes du fichier de ressources comporte plusieurs chaînes avec des ID de chaîne associés. Cette méthode ajoute un contrôle de bouton de commande pour chaque entrée valide dans la table de chaînes entre nIDCommandControlsFirst et nCommandControlsLast, inclus. Pour ces contrôles de bouton de commande, la chaîne de la table de chaînes est la légende du contrôle et l’ID de chaîne est l’ID du contrôle.

Consultez CTaskDialog ::SetOptions pour obtenir la liste des options valides .

La CTaskDialog fermeture se ferme lorsque l’utilisateur sélectionne un bouton commun, un contrôle de lien de commande ou ferme le CTaskDialog. La valeur de retour est l’identificateur qui indique comment l’utilisateur a fermé la boîte de dialogue.

Exemple

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog ::TaskDialogCallback

L’infrastructure appelle cette méthode en réponse à différents messages Windows.

friend:
HRESULT TaskDialogCallback(
    HWND hWnd,
    UINT uNotification,
    WPARAM wParam,
    LPARAM lParam,
    LONG_PTR dwRefData);

Paramètres

hwnd
[in] Handle de la m_hWnd structure pour le CTaskDialog.

uNotification
[in] Code de notification qui spécifie le message généré.

wParam
[in] Plus d’informations sur le message.

lParam
[in] Plus d’informations sur le message.

dwRefData
[in] Pointeur vers l’objet CTaskDialog auquel le message de rappel s’applique.

Valeur de retour

Dépend du code de notification spécifique. Pour plus d'informations, consultez la section Notes.

Notes

L’implémentation par défaut de TaskDialogCallback handles le message spécifique, puis appelle la méthode On appropriée de la classe CTaskDialog. Par exemple, en réponse au message TDN_BUTTON_CLICKED, TaskDialogCallback appelle CTaskDialog ::OnCommandControlClick.

Les valeurs de wParam et lParam dépendent du message généré spécifique. Il est possible que ces deux valeurs soient vides ou vides. Le tableau suivant répertorie les notifications par défaut prises en charge et les valeurs de wParam et lParam représentées. Si vous remplacez cette méthode dans une classe dérivée, vous devez implémenter le code de rappel pour chaque message du tableau suivant.

Notification Message valeur wParam lParam , valeur
TDN_CREATED Non utilisé. Non utilisé.
TDN_NAVIGATED Non utilisé. Non utilisé.
TDN_BUTTON_CLICKED ID de contrôle du bouton de commande. Aucun affichage.
TDN_HYPERLINK_CLICKED Aucun affichage. Structure LPCWSTR qui contient le lien.
TDN_TIMER Durée en millisecondes depuis la CTaskDialog création ou la réinitialisation du minuteur. Aucun affichage.
TDN_DESTROYED Non utilisé. Non utilisé.
TDN_RADIO_BUTTON_CLICKED ID de case d’option. Aucun affichage.
TDN_DIALOG_CONSTRUCTED Non utilisé. Non utilisé.
TDN_VERIFICATION_CLICKED 1 si la case à cocher est cochée, 0 si ce n’est pas le cas. Aucun affichage.
TDN_HELP Non utilisé. Non utilisé.
TDN_EXPANDO_BUTTON_CLICKED 0 si la zone d’expansion est réduite ; différent de zéro si le texte d’extension est affiché. Aucun affichage.

Voir aussi

Classes
CObject, classe
Graphique hiérarchique
Procédure pas à pas : ajout d’une classe CTaskDialog à une application