Partager via


CTaskDialog::AddCommandControl

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

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

Paramètres

  • [in] nCommandControlID
    Le numéro d'ID du contrôle de commande.

  • [in] strCaption
    La chaîne qu' CTaskDialog affiche à l'utilisateur. Utilisez cette chaîne pour expliquer le but de la commande.

  • [in] bEnabled
    Un paramètre de type boolean qui indique si le nouveau bouton est activé ou désactivé.

  • [in] bRequiresElevation
    Un paramètre de type boolean qui indique si une commande requiert l'élévation.

Notes

CTaskDialog, classe peut afficher un nombre illimité de contrôles bouton de commande. Toutefois, si CTaskDialog affiche tous les contrôles bouton de commande, il peut afficher un maximum de six boutons. Si CTaskDialog n'a aucun contrôle bouton de commande, il peut afficher un nombre illimité de boutons.

Lorsque l'utilisateur sélectionne un contrôle bouton de commande, CTaskDialog se ferme. Si votre application affiche la boîte de dialogue à l'aide de CTaskDialog::DoModal, DoModal retourne nCommandControlID du contrôle sélectionné de bouton de commande.

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

Configuration requise

en-tête : afxtaskdialog.h

Voir aussi

Référence

CTaskDialog, classe

Graphique de la hiérarchie

CTaskDialog::ClickCommandControl

CTaskDialog::GetSelectedCommandControlID

CTaskDialog::IsCommandControlEnabled

CTaskDialog::RemoveAllCommandControls

CTaskDialog::SetCommandControlOptions

CTaskDialog::SetDefaultCommandControl