Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Adds a new command button control to the CTaskDialog.
void AddCommandControl(
   int nCommandControlID,
   const CString& strCaption,
   BOOL bEnabled = TRUE,
   BOOL bRequiresElevation = FALSE
);
Parameters
- [in] nCommandControlID 
 The command control identification number.
- [in] strCaption 
 The string that the CTaskDialog displays to the user. Use this string to explain the purpose of the command.
- [in] bEnabled 
 A Boolean parameter that indicates if the new button is enabled or disabled.
- [in] bRequiresElevation 
 A Boolean parameter that indicates whether a command requires elevation.
Remarks
The CTaskDialog Class can display an unlimited number of command button controls. However, if a CTaskDialog displays any command button controls, it can display a maximum of six buttons. If a CTaskDialog has no command button controls, it can display an unlimited number of buttons.
When the user selects a command button control, the CTaskDialog closes. If your application displays the dialog box by using CTaskDialog::DoModal, DoModal returns the nCommandControlID of the selected command button control.
Example
// 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);
Requirements
Header: afxtaskdialog.h
See Also
Reference
CTaskDialog::ClickCommandControl
CTaskDialog::GetSelectedCommandControlID
CTaskDialog::IsCommandControlEnabled
CTaskDialog::RemoveAllCommandControls