Freigeben über


CTaskDialog::AddCommandControl

Fügt ein neues Ein Steuerelement für Befehlsschaltflächen CTaskDialog hinzu.

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

Parameter

  • [in] nCommandControlID
    Die Befehlssteuerid.

  • [in] strCaption
    Die Zeichenfolge, die CTaskDialog für den Benutzer anzeigen.Verwenden Sie diese Zeichenfolge, um den Zweck des Befehls zu verdeutlichen.

  • [in] bEnabled
    Ein boolescher Parameter, der angibt, ob die neue Schaltfläche aktiviert oder deaktiviert wird.

  • [in] bRequiresElevation
    Ein boolescher Parameter, der angibt, ob ein Befehl Ausweitung erfordert.

Hinweise

CTaskDialog-Klasse kann eine unbegrenzte Anzahl Befehlsschaltflächensteuerelemente anzeigen.Wenn CTaskDialog alle Befehlsschaltflächensteuerelemente anzeigt, kann es maximal sechs Schaltflächen anzeigen.Wenn CTaskDialog keine Befehlsschaltflächensteuerelemente verfügt, kann es eine unendliche Anzahl Schaltflächen anzeigen.

Wenn der Benutzer ein Ein Steuerelement für Befehlsschaltflächen auswählt, schließt CTaskDialog.Wenn die Anwendung das Dialogfeld anzeigt, indem sie CTaskDialog::DoModal verwendet, gibt DoModalnCommandControlID des ausgewählten Befehlsschaltflächensteuerelements zurück.

Beispiel

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

Anforderungen

Header: afxtaskdialog.h

Siehe auch

Referenz

CTaskDialog-Klasse

Hierarchien-Diagramm

CTaskDialog::ClickCommandControl

CTaskDialog::GetSelectedCommandControlID

CTaskDialog::IsCommandControlEnabled

CTaskDialog::RemoveAllCommandControls

CTaskDialog::SetCommandControlOptions

CTaskDialog::SetDefaultCommandControl