CTaskDialog ClassCTaskDialog Class

Всплывающее диалоговое окно, которое функционирует как окно сообщения, но может отображать дополнительные сведения для пользователя.A pop-up dialog box that functions like a message box but can display additional information to the user. CTaskDialog также включает функции для получения сведений от пользователя.The CTaskDialog also includes functionality for gathering information from the user.

СинтаксисSyntax

class CTaskDialog : public CObject

ЧленыMembers

КонструкторыConstructors

ИмяName ОписаниеDescription
CTaskDialog:: CTaskDialogCTaskDialog::CTaskDialog Формирует объект CTaskDialog.Constructs a CTaskDialog object.

МетодыMethods

ИмяName ОписаниеDescription
CTaskDialog:: АддкоммандконтролCTaskDialog::AddCommandControl Добавляет элемент управления «кнопка» в CTaskDialog .Adds a command button control to the CTaskDialog.
CTaskDialog:: AddRadioButtonCTaskDialog::AddRadioButton Добавляет переключатель в CTaskDialog .Adds a radio button to the CTaskDialog.
CTaskDialog:: КликккоммандконтролCTaskDialog::ClickCommandControl Программно нажимает на командную кнопку или общую кнопку.Clicks a command button control or common button programmatically.
CTaskDialog:: КликкрадиобуттонCTaskDialog::ClickRadioButton Программно щелкает переключатель.Clicks a radio button programmatically.
CTaskDialog::D ОмодалCTaskDialog::DoModal Отображает CTaskDialog.Displays the CTaskDialog.
CTaskDialog:: ЖеткоммонбуттонкаунтCTaskDialog::GetCommonButtonCount Получает количество доступных общих кнопок.Retrieves the number of common buttons available.
CTaskDialog:: ЖеткоммонбуттонфлагCTaskDialog::GetCommonButtonFlag Преобразует стандартную кнопку Windows в общий тип кнопки, связанный с CTaskDialog классом.Converts a standard Windows button to the common button type associated with the CTaskDialog class.
CTaskDialog:: ЖеткоммонбуттонидCTaskDialog::GetCommonButtonId Преобразует один из типов общих кнопок, связанных с CTaskDialog классом, в стандартную кнопку Windows.Converts one of the common button types associated with the CTaskDialog class to a standard Windows button.
CTaskDialog:: параметрCTaskDialog::GetOptions Возвращает флаги параметров для этого CTaskDialog .Returns the option flags for this CTaskDialog.
CTaskDialog:: ЖетселектедкоммандконтролидCTaskDialog::GetSelectedCommandControlID Возвращает выбранный элемент управления кнопки команды.Returns the selected command button control.
CTaskDialog:: ЖетселектедрадиобуттонидCTaskDialog::GetSelectedRadioButtonID Возвращает выбранный переключатель.Returns the selected radio button.
CTaskDialog:: ЖетверификатиончеккбоксстатеCTaskDialog::GetVerificationCheckboxState Получает состояние флажка проверки.Retrieves the state of the verification check box.
CTaskDialog:: ИскоммандконтроленабледCTaskDialog::IsCommandControlEnabled Определяет, включен ли элемент управления "Кнопка" или "Общая" кнопка.Determines whether a command button control or common button is enabled.
CTaskDialog:: ИсрадиобуттоненабледCTaskDialog::IsRadioButtonEnabled Определяет, включен ли переключатель.Determines whether a radio button is enabled.
CTaskDialog:: не поддерживаетсяCTaskDialog::IsSupported Определяет, поддерживает ли компьютер, на котором работает приложение, CTaskDialog .Determines whether the computer that is running the application supports the CTaskDialog.
CTaskDialog:: ЛоадкоммандконтролсCTaskDialog::LoadCommandControls Добавляет элементы управления "Кнопка" с помощью данных из таблицы строк.Adds command button controls by using data from the string table.
CTaskDialog:: ЛоадрадиобуттонсCTaskDialog::LoadRadioButtons Добавляет переключатели, используя данные из таблицы строк.Adds radio buttons by using data from the string table.
CTaskDialog:: NavigateToCTaskDialog::NavigateTo Передает фокус на другой CTaskDialog .Transfers the focus to another CTaskDialog.
CTaskDialog:: ОнкоммандконтролкликкCTaskDialog::OnCommandControlClick Платформа вызывает этот метод, когда пользователь щелкает элемент управления "Кнопка".The framework calls this method when the user clicks a command button control.
CTaskDialog:: OnCreateCTaskDialog::OnCreate Платформа вызывает этот метод после создания CTaskDialog .The framework calls this method after it creates the CTaskDialog.
CTaskDialog:: OnDestroyCTaskDialog::OnDestroy Платформа вызывает этот метод непосредственно перед уничтожением CTaskDialog .The framework calls this method immediately before it destroys the CTaskDialog.
CTaskDialog:: ОнекспандбуттонкликкCTaskDialog::OnExpandButtonClick Платформа вызывает этот метод, когда пользователь нажимает кнопку расширения.The framework calls this method when the user clicks on the expansion button.
CTaskDialog:: OnHelpCTaskDialog::OnHelp Платформа вызывает этот метод, когда пользователь запрашивает справку.The framework calls this method when the user requests help.
CTaskDialog:: ОнхиперлинккликкCTaskDialog::OnHyperlinkClick Платформа вызывает этот метод, когда пользователь щелкает гиперссылку.The framework calls this method when the user clicks on a hyperlink.
CTaskDialog:: OnInitCTaskDialog::OnInit Платформа вызывает этот метод при CTaskDialog инициализации.The framework calls this method when the CTaskDialog is initialized.
CTaskDialog:: ОннавигатепажеCTaskDialog::OnNavigatePage Платформа вызывает этот метод, когда пользователь перемещает фокус в отношении элементов управления в CTaskDialog .The framework calls this method when the user moves the focus with regard to controls on the CTaskDialog.
CTaskDialog:: ОнрадиобуттонкликкCTaskDialog::OnRadioButtonClick Платформа вызывает этот метод, когда пользователь выбирает элемент управления "переключатель".The framework calls this method when the user selects a radio button control.
CTaskDialog:: OnTimeCTaskDialog::OnTimer Платформа вызывает этот метод по истечении срока действия таймера.The framework calls this method when the timer expires.
CTaskDialog:: ОнверификатиончеккбокскликкCTaskDialog::OnVerificationCheckboxClick Платформа вызывает этот метод, когда пользователь щелкает флажок проверки.The framework calls this method when the user clicks the verification check box.
CTaskDialog:: РемовеаллкоммандконтролсCTaskDialog::RemoveAllCommandControls Удаляет все командные элементы управления из CTaskDialog .Removes all the command controls from the CTaskDialog.
CTaskDialog:: РемовеаллрадиобуттонсCTaskDialog::RemoveAllRadioButtons Удаляет все переключатели из CTaskDialog .Removes all the radio buttons from the CTaskDialog.
CTaskDialog:: СеткоммандконтролоптионсCTaskDialog::SetCommandControlOptions Обновляет элемент управления «кнопка» в CTaskDialog .Updates a command button control on the CTaskDialog.
CTaskDialog:: СеткоммонбуттоноптионсCTaskDialog::SetCommonButtonOptions Обновляет подмножество общих кнопок для включения и требует повышения прав UAC.Updates a subset of common buttons to be enabled and require UAC elevation.
CTaskDialog:: SetCommonButtonsCTaskDialog::SetCommonButtons Добавляет общие кнопки в CTaskDialog .Adds common buttons to the CTaskDialog.
CTaskDialog:: СетконтентCTaskDialog::SetContent Обновляет содержимое CTaskDialog .Updates the content of the CTaskDialog.
CTaskDialog:: СетдефаулткоммандконтролCTaskDialog::SetDefaultCommandControl Задает элемент управления "кнопка по умолчанию".Specifies the default command button control.
CTaskDialog:: СетдефаултрадиобуттонCTaskDialog::SetDefaultRadioButton Задает переключатель по умолчанию.Specifies the default radio button.
CTaskDialog:: СетдиалогвидсCTaskDialog::SetDialogWidth Корректирует ширину CTaskDialog .Adjusts the width of the CTaskDialog.
CTaskDialog:: SetExpansionAreaCTaskDialog::SetExpansionArea Обновляет область расширения CTaskDialog .Updates the expansion area of the CTaskDialog.
CTaskDialog:: СетфутериконCTaskDialog::SetFooterIcon Обновляет значок нижнего колонтитула для CTaskDialog .Updates the footer icon for the CTaskDialog.
CTaskDialog:: СетфутертекстCTaskDialog::SetFooterText Обновляет текст нижнего колонтитула CTaskDialog .Updates the text on the footer of the CTaskDialog.
CTaskDialog:: СетмаиниконCTaskDialog::SetMainIcon Обновляет основной значок CTaskDialog .Updates the main icon of the CTaskDialog.
CTaskDialog:: СетмаининструктионCTaskDialog::SetMainInstruction Обновляет основную инструкцию CTaskDialog .Updates the main instruction of the CTaskDialog.
CTaskDialog:: СетоптионсCTaskDialog::SetOptions Настраивает параметры для CTaskDialog .Configures the options for the CTaskDialog.
CTaskDialog:: СетпрогрессбармаркуиCTaskDialog::SetProgressBarMarquee Настраивает полосу бегущей строки для CTaskDialog и добавляет ее в диалоговое окно.Configures a marquee bar for the CTaskDialog and adds it to the dialog box.
CTaskDialog:: СетпрогрессбарпоситионCTaskDialog::SetProgressBarPosition Настраивает расположение индикатора выполнения.Adjusts the position of the progress bar.
CTaskDialog:: СетпрогрессбарранжеCTaskDialog::SetProgressBarRange Настраивает диапазон индикатора выполнения.Adjusts the range of the progress bar.
CTaskDialog:: СетпрогрессбарстатеCTaskDialog::SetProgressBarState Задает состояние индикатора выполнения и отображает его в CTaskDialog .Sets the state of the progress bar and displays it on the CTaskDialog.
CTaskDialog:: СетрадиобуттоноптионсCTaskDialog::SetRadioButtonOptions Включает или отключает переключатель.Enables or disables a radio button.
CTaskDialog:: СетверификатиончеккбоксCTaskDialog::SetVerificationCheckbox Устанавливает флажок проверять состояние проверки.Sets the checked state of the verification check box.
CTaskDialog:: SetVerificationCheckboxTextCTaskDialog::SetVerificationCheckboxText Задает текст с правой стороны флажка проверки.Sets the text on the right side of the verification check box.
CTaskDialog:: СетвиндовтитлеCTaskDialog::SetWindowTitle Задает заголовок CTaskDialog .Sets the title of the CTaskDialog.
CTaskDialog:: ShowDialogCTaskDialog::ShowDialog Создает и отображает CTaskDialog .Creates and displays a CTaskDialog.
CTaskDialog:: ТаскдиалогкаллбаккCTaskDialog::TaskDialogCallback Платформа вызывает эту функцию в ответ на различные сообщения Windows.The framework calls this in response to various Windows messages.

Элементы данныхData Members

ИмяName ОписаниеDescription
m_aButtons Массив элементов управления кнопки команд для CTaskDialog .The array of command button controls for the CTaskDialog.
m_aRadioButtons Массив элементов управления "переключатель" для CTaskDialog .The array of radio button controls for the CTaskDialog.
m_bVerified TRUE Указывает, что флажок проверки установлен; FALSE указывает, что это не так.TRUE indicates the verification check box is checked; FALSE indicates it is not.
m_footerIcon Значок в нижнем колонтитуле CTaskDialog .The icon in the footer of the CTaskDialog.
m_hWnd Маркер окна для CTaskDialog .A handle to the window for the CTaskDialog.
m_mainIcon Основной значок CTaskDialog .The main icon of the CTaskDialog.
m_nButtonDisabled Маска, указывающая, какая из общих кнопок отключена.A mask that indicates which of the common buttons are disabled.
m_nButtonElevation Маска, указывающая, какая из общих кнопок требует повышения прав UAC.A mask that indicates which of the common buttons require UAC elevation.
m_nButtonId Идентификатор выбранного элемента управления кнопки команды.The ID of the selected command button control.
m_nCommonButton Маска, которая указывает, какие общие кнопки отображаются в CTaskDialog .A mask that indicates which common buttons are displayed on the CTaskDialog.
m_nDefaultCommandControl Идентификатор элемента управления кнопки команды, выбранного при CTaskDialog отображении.The ID of the command button control that is selected when the CTaskDialog is displayed.
m_nDefaultRadioButton Идентификатор элемента управления "переключатель", который выбран при CTaskDialog отображении.The ID of the radio button control that is selected when the CTaskDialog is displayed.
m_nFlags Маска, указывающая параметры для CTaskDialog .A mask that indicates the options for the CTaskDialog.
m_nProgressPos Текущее расположение индикатора выполнения.The current position for the progress bar. Это значение должно принадлежать диапазону от m_nProgressRangeMin до m_nProgressRangeMax.This value must be between m_nProgressRangeMin and m_nProgressRangeMax.
m_nProgressRangeMax Максимальное значение индикатора выполнения.The maximum value for the progress bar.
m_nProgressRangeMin Минимальное значение индикатора выполнения.The minimum value for the progress bar.
m_nProgressState Состояние индикатора выполнения.The state of the progress bar. Дополнительные сведения см. в разделе CTaskDialog:: сетпрогрессбарстате.For more information, see CTaskDialog::SetProgressBarState.
m_nRadioId Идентификатор выбранного элемента управления "переключатель".The ID of the selected radio button control.
m_nWidth Ширина CTaskDialog (в пикселях).The width of the CTaskDialog in pixels.
m_strCollapse Строка, CTaskDialog отображаемая справа от поля расширения, когда развернутая информация скрыта.The string the CTaskDialog displays to the right of the expansion box when the expanded information is hidden.
m_strContent Строка содержимого CTaskDialog .The content string of the CTaskDialog.
m_strExpand Строка, CTaskDialog отображаемая справа от поля расширения при отображении расширенной информации.The string the CTaskDialog displays to the right of the expansion box when the expanded information is displayed.
m_strFooter Нижний колонтитул CTaskDialog .The footer of the CTaskDialog.
m_strInformation Развернутая информация для CTaskDialog .The expanded information for the CTaskDialog.
m_strMainInstruction Основная инструкция CTaskDialog .The main instruction of the CTaskDialog.
m_strTitle Заголовок CTaskDialog.The title of the CTaskDialog.
m_strVerification Строка, которая CTaskDialog отображается справа от флажка проверки.The string that the CTaskDialog displays to the right of the verification check box.

КомментарииRemarks

CTaskDialogКласс заменяет стандартное окно сообщения Windows и имеет дополнительные функциональные возможности, такие как новые элементы управления для сбора информации от пользователя.The CTaskDialog class replaces the standard Windows message box and has additional functionality such as new controls to gather information from the user. Этот класс находится в библиотеке MFC в Visual Studio 2010 и более поздних версиях.This class is in the MFC library in Visual Studio 2010 and later. CTaskDialogДоступен, начиная с Windows Vista.The CTaskDialog is available starting with Windows Vista. Более ранние версии Windows не могут отобразить CTaskDialog объект.Earlier versions of Windows cannot display the CTaskDialog object. Используйте CTaskDialog::IsSupported для определения во время выполнения, может ли текущий пользователь отображать диалоговое окно задачи.Use CTaskDialog::IsSupported to determine at runtime whether the current user can display the task dialog box. Стандартное окно сообщения Windows по-прежнему поддерживается.The standard Windows message box is still supported.

CTaskDialogДоступен только при сборке приложения с помощью библиотеки Юникода.The CTaskDialog is available only when you build your application by using the Unicode library.

CTaskDialogИмеет два разных конструктора.The CTaskDialog has two different constructors. Один конструктор позволяет указать две командные кнопки и максимум шесть элементов управления "обычная кнопка".One constructor enables you to specify two command buttons and a maximum of six regular button controls. После создания можно добавить дополнительные кнопки команд CTaskDialog .You can add more command buttons after you create the CTaskDialog. Второй конструктор не поддерживает никаких командных кнопок, но можно добавить неограниченное число обычных элементов управления "Кнопка".The second constructor does not support any command buttons, but you can add an unlimited number of regular button controls. Дополнительные сведения о конструкторах см. в разделе CTaskDialog:: CTaskDialog.For more information about the constructors, see CTaskDialog::CTaskDialog.

На следующем рисунке показан пример, CTaskDialog иллюстрирующий расположение некоторых элементов управления.The following image shows a sample CTaskDialog to illustrate the location of some of the controls.

Пример CTaskDialogExample of CTaskDialog
Пример CTaskDialogCTaskDialog Sample

ТребованияRequirements

Минимальная требуемая операционная система: Windows VistaMinimum required operating system: Windows Vista

Заголовок: афкстаскдиалог. hHeader: afxtaskdialog.h

CTaskDialog:: АддкоммандконтролCTaskDialog::AddCommandControl

Добавляет новый элемент управления кнопки команд в CTaskDialog .Adds a new command button control to the CTaskDialog.

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

ПараметрыParameters

нкоммандконтролидnCommandControlID
окне Идентификационный номер элемента управления команды.[in] The command control identification number.

стркаптионstrCaption
окне Строка, CTaskDialog отображаемая пользователю.[in] The string that the CTaskDialog displays to the user. Используйте эту строку, чтобы объяснить назначение команды.Use this string to explain the purpose of the command.

бенабледbEnabled
окне Логический параметр, указывающий, включена или отключена кнопка "создать".[in] A Boolean parameter that indicates if the new button is enabled or disabled.

брекуиреселеватионbRequiresElevation
окне Логический параметр, указывающий, требует ли команда повышение прав.[in] A Boolean parameter that indicates whether a command requires elevation.

КомментарииRemarks

CTaskDialog ClassМожет отображать неограниченное количество элементов управления "Кнопка".The CTaskDialog Class can display an unlimited number of command button controls. Однако, если CTaskDialog отображает все элементы управления кнопки, она может отображать не более шести кнопок.However, if a CTaskDialog displays any command button controls, it can display a maximum of six buttons. Если у a CTaskDialog нет элементов управления "Кнопка", он может отобразить неограниченное количество кнопок.If a CTaskDialog has no command button controls, it can display an unlimited number of buttons.

Когда пользователь выбирает элемент управления «кнопка», CTaskDialog закрывается.When the user selects a command button control, the CTaskDialog closes. Если приложение отображает диалоговое окно с помощью CTaskDialog::D омодал, DoModal возвращает нкоммандконтролид выбранного элемента управления "Кнопка".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);

CTaskDialog:: AddRadioButtonCTaskDialog::AddRadioButton

Добавляет переключатель в CTaskDialog .Adds a radio button to the CTaskDialog.

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

ПараметрыParameters

нрадиобуттонидnRadioButtonID
окне Идентификационный номер переключателя.[in] The identification number of the radio button.

стркаптионstrCaption
окне Строка, CTaskDialog отображаемая рядом с переключателем.[in] The string that the CTaskDialog displays next to the radio button.

бенабледbEnabled
окне Логический параметр, указывающий, включен ли переключатель.[in] A Boolean parameter that indicates whether the radio button is enabled.

КомментарииRemarks

Переключатели для класса CTaskDialog позволяют собирать сведения от пользователя.The radio buttons for the CTaskDialog Class enable you to gather information from the user. Чтобы определить, какой переключатель выбран, используйте функцию CTaskDialog:: жетселектедрадиобуттонид .Use the function CTaskDialog::GetSelectedRadioButtonID to determine which radio button is selected.

Не CTaskDialog требует, чтобы параметры нрадиобуттонид были уникальными для каждого переключателя.The CTaskDialog does not require that the nRadioButtonID parameters are unique for each radio button. Однако может возникнуть непредвиденное поведение, если не используется отдельный идентификатор для каждого переключателя.However, you may experience unexpected behavior if you do not use a distinct identifier for each radio button.

Пример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.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:: КликккоммандконтролCTaskDialog::ClickCommandControl

Программно нажимает на командную кнопку или общую кнопку.Clicks a command button control or common button programmatically.

protected:
void ClickCommandControl(int nCommandControlID) const;

ПараметрыParameters

нкоммандконтролидnCommandControlID
окне Идентификатор команды элемента управления для щелчка.[in] The command ID of the control to click.

КомментарииRemarks

Этот метод создает сообщение Windows TDM_CLICK_BUTTON.This method generates the windows message TDM_CLICK_BUTTON.

CTaskDialog:: КликкрадиобуттонCTaskDialog::ClickRadioButton

Программно щелкает переключатель.Clicks a radio button programmatically.

protected:
void ClickRadioButton(int nRadioButtonID) const;

ПараметрыParameters

нрадиобуттонидnRadioButtonID
окне Идентификатор переключателя, который нужно щелкнуть.[in] The ID of the radio button to click.

КомментарииRemarks

Этот метод создает сообщение Windows TDM_CLICK_RADIO_BUTTON.This method generates the windows message TDM_CLICK_RADIO_BUTTON.

CTaskDialog:: CTaskDialogCTaskDialog::CTaskDialog

Создает экземпляр класса CTaskDialog.Creates an instance of the CTaskDialog Class.

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

ПараметрыParameters

стрконтентstrContent
окне Строка, используемая для содержимого CTaskDialog .[in] The string to use for the content of the CTaskDialog.

стрмаининструктионstrMainInstruction
окне Основная инструкция CTaskDialog .[in] The main instruction of the CTaskDialog.

стртитлеstrTitle
окне Заголовок CTaskDialog .[in] The title of the CTaskDialog.

нкоммонбуттонсnCommonButtons
окне Маска общих кнопок для добавления в CTaskDialog .[in] A mask of the common buttons to add to the CTaskDialog.

нтаскдиалогоптионсnTaskDialogOptions
окне Набор параметров, используемых для CTaskDialog .[in] The set of options to use for the CTaskDialog.

стрфутерstrFooter
окне Строка, используемая в качестве нижнего колонтитула.[in] The string to use as the footer.

нидкоммандконтролсфирстnIDCommandControlsFirst
окне Идентификатор строки первой команды.[in] The string ID of the first command.

нидкоммандконтролсластnIDCommandControlsLast
окне Идентификатор строки последней команды.[in] The string ID of the last command.

КомментарииRemarks

Добавить в приложение можно двумя способами CTaskDialog .There are two ways that you can add a CTaskDialog to your application. Первый способ — использовать один из конструкторов для создания CTaskDialog и вывода его с помощью CTaskDialog::D омодал.The first way is to use one of the constructors to create a CTaskDialog and display it using CTaskDialog::DoModal. Второй способ — использовать статическую функцию CTaskDialog:: ShowDialog, которая позволяет отображать CTaskDialog без явного создания CTaskDialog объекта.The second way is to use the static function CTaskDialog::ShowDialog, which enables you to display a CTaskDialog without explicitly creating a CTaskDialog object.

Второй конструктор создает кнопки команд с помощью данных из файла ресурсов приложения.The second constructor creates command button controls by using data from the resource file of your application. Таблица строк в файле ресурсов содержит несколько строк со связанными идентификаторами строк.The string table in the resource file has several strings with associated string IDs. Этот метод добавляет элемент управления «кнопка» для каждой допустимой записи в таблице строк между нидкоммандконтролсфирст и нкоммандконтролсласт включительно.This method adds a command button control for each valid entry in the string table between nIDCommandControlsFirst and nCommandControlsLast, inclusive. Для этих элементов управления кнопки строка в таблице строк представляет собой заголовок элемента управления, а идентификатор строки — идентификатор элемента управления.For these command button controls, the string in the string table is the control's caption and the string ID is the control's ID.

Список допустимых параметров см. в разделе CTaskDialog:: сетоптионс .See CTaskDialog::SetOptions for a list of valid options.

Пример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);

// 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 ОмодалCTaskDialog::DoModal

Показывает CTaskDialog и делает его модальным.Shows the CTaskDialog and makes it modal.

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

ПараметрыParameters

хпарентhParent
окне Родительское окно для CTaskDialog .[in] The parent window for the CTaskDialog.

Возвращаемое значениеReturn Value

Целое число, соответствующее выбору, сделанному пользователем.An integer that corresponds to the selection made by the user.

КомментарииRemarks

Отображает этот экземпляр CTaskDialog.Displays this instance of the CTaskDialog. Затем приложение ожидает закрытия диалогового окна пользователем.The application then waits for the user to close the dialog box.

CTaskDialogЗакрывается, когда пользователь выбирает общую кнопку, элемент управления Command Link или закрывает CTaskDialog .The CTaskDialog closes when the user selects a common button, a command link control, or closes the CTaskDialog. Возвращаемое значение — это идентификатор, который указывает, как пользователь закрыл диалоговое окно.The return value is the identifier that indicates how the user closed the dialog box.

Пример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);

// 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:: ЖеткоммонбуттонкаунтCTaskDialog::GetCommonButtonCount

Получает количество общих кнопок.Retrieves the number of common buttons.

int GetCommonButtonCount() const;

Возвращаемое значениеReturn Value

Число доступных общих кнопок.The number of common buttons available.

КомментарииRemarks

Общими кнопками являются кнопки по умолчанию, которые вы предоставляете CTaskDialog:: CTaskDialog.The common buttons are the default buttons that you provide to CTaskDialog::CTaskDialog. Класс CTaskDialog отображает кнопки, расположенные в нижней части диалогового окна.The CTaskDialog Class displays the buttons along the bottom of the dialog box.

Нумерованный список кнопок предоставляется в Коммктрл. h.The enumerated list of buttons is provided in CommCtrl.h.

CTaskDialog:: ЖеткоммонбуттонфлагCTaskDialog::GetCommonButtonFlag

Преобразует стандартную кнопку Windows в общий тип кнопки, связанный с классом CTaskDialog.Converts a standard Windows button to the common button type associated with the CTaskDialog Class.

int GetCommonButtonFlag(int nButtonId) const;

ПараметрыParameters

нбуттонидnButtonId
окне Стандартное значение кнопки Windows.[in] The standard Windows button value.

Возвращаемое значениеReturn Value

Значение соответствующей CTaskDialog общей кнопки.The value of the corresponding CTaskDialog common button. Если соответствующей общей кнопки нет, этот метод возвращает значение 0.If there is no corresponding common button, this method returns 0.

CTaskDialog:: ЖеткоммонбуттонидCTaskDialog::GetCommonButtonId

Преобразует один из типов общих кнопок, связанных с классом CTaskDialog , в стандартную кнопку Windows.Converts one of the common button types associated with the CTaskDialog Class to a standard Windows button.

int GetCommonButtonId(int nFlag);

ПараметрыParameters

нфлагnFlag
окне Общий тип кнопки, связанный с CTaskDialog классом.[in] The common button type associated with the CTaskDialog class.

Возвращаемое значениеReturn Value

Значение соответствующей стандартной кнопки Windows.The value of the corresponding standard Windows button. Если соответствующей кнопки Windows нет, метод возвращает значение 0.If there is no corresponding Windows button, the method returns 0.

CTaskDialog:: параметрCTaskDialog::GetOptions

Возвращает флаги параметров для этого CTaskDialog .Returns the option flags for this CTaskDialog.

int GetOptions() const;

Возвращаемое значениеReturn Value

Флаги для CTaskDialog .The flags for the CTaskDialog.

КомментарииRemarks

Дополнительные сведения о параметрах, доступных для класса CTaskDialog, см. в разделе CTaskDialog:: сетоптионс.For more information about the options available to the CTaskDialog Class, see CTaskDialog::SetOptions.

Пример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);

// 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:: ЖетселектедкоммандконтролидCTaskDialog::GetSelectedCommandControlID

Возвращает выбранный элемент управления кнопки команды.Returns the selected command button control.

int GetSelectedCommandControlID() const;

Возвращаемое значениеReturn Value

Идентификатор выбранного в данный момент элемента управления кнопки команды.The ID of the currently selected command button control.

КомментарииRemarks

Не нужно использовать этот метод для получения идентификатора кнопки, выбранной пользователем.You do not have to use this method to retrieve the ID of the command button that the user selected. Этот идентификатор возвращается либо CTaskDialog::D омодал , либо CTaskDialog:: ShowDialog.That ID is returned by either CTaskDialog::DoModal or CTaskDialog::ShowDialog.

Пример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);

CTaskDialog:: ЖетселектедрадиобуттонидCTaskDialog::GetSelectedRadioButtonID

Возвращает выбранный переключатель.Returns the selected radio button.

int GetSelectedRadioButtonID() const;

Возвращаемое значениеReturn Value

Идентификатор выбранного переключателя.The ID of the selected radio button.

КомментарииRemarks

Этот метод можно использовать после закрытия пользователем диалогового окна для получения выбранного переключателя.You can use this method after the user closes the dialog box to retrieve the selected radio button.

Пример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.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:: ЖетверификатиончеккбоксстатеCTaskDialog::GetVerificationCheckboxState

Получает состояние флажка проверки.Retrieves the state of the verification check box.

BOOL GetVerificationCheckboxState() const;

Возвращаемое значениеReturn Value

Значение TRUE, если флажок установлен, в противном случае — FALSE.TRUE if the check box is checked, FALSE if it is not.

Пример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);

// 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:: ИскоммандконтроленабледCTaskDialog::IsCommandControlEnabled

Определяет, включен ли элемент управления или кнопка "Командная кнопка".Determines whether a command button control or button is enabled.

BOOL IsCommandControlEnabled(int nCommandControlID) const;

ПараметрыParameters

нкоммандконтролидnCommandControlID
окне Идентификатор элемента управления или тестируемой кнопки команды.[in] The ID of the command button control or button to test.

Возвращаемое значениеReturn Value

Значение TRUE, если элемент управления включен, и FALSE в противном случае.TRUE if the control is enabled, FALSE if it is not.

КомментарииRemarks

Этот метод можно использовать для определения доступности как элементов управления "Кнопка", так и общих кнопок CTaskDialog класса *.You can use this method to determine the availability of both command button controls and the common buttons of the CTaskDialog Class*.

Если нкоммандконтролид не является допустимым идентификатором для общей CTaskDialog кнопки или элемента управления кнопки, этот метод создает исключение.If nCommandControlID is not a valid identifier for either a common CTaskDialog button or a command button control, this method throws an exception.

Пример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);

CTaskDialog:: ИсрадиобуттоненабледCTaskDialog::IsRadioButtonEnabled

Определяет, включен ли переключатель.Determines whether a radio button is enabled.

BOOL IsRadioButtonEnabled(int nRadioButtonID) const;

ПараметрыParameters

нрадиобуттонидnRadioButtonID
окне Идентификатор переключателя для проверки.[in] The ID of the radio button to test.

Возвращаемое значениеReturn Value

Значение TRUE, если переключатель включен, и FALSE в противном случае.TRUE if the radio button is enabled, FALSE if it is not.

КомментарииRemarks

Если нрадиобуттонид не является допустимым идентификатором для переключателя, этот метод создает исключение.If nRadioButtonID is not a valid identifier for a radio button, this method throws an exception.

Пример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.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:: не поддерживаетсяCTaskDialog::IsSupported

Определяет, поддерживает ли компьютер, на котором работает приложение, CTaskDialog .Determines whether the computer that is running the application supports the CTaskDialog.

static BOOL IsSupported();

Возвращаемое значениеReturn Value

Значение TRUE, если компьютер поддерживает CTaskDialog ; В противном случае — значение FALSE.TRUE if the computer supports the CTaskDialog; FALSE otherwise.

КомментарииRemarks

Эта функция используется для определения во время выполнения, если компьютер, на котором работает приложение, поддерживает CTaskDialog класс.Use this function to determine at runtime if the computer that is running your application supports the CTaskDialog class. Если компьютер не поддерживает CTaskDialog , необходимо предоставить другой способ передачи информации пользователю.If the computer does not support the CTaskDialog, you should provide another method of communicating information to the user. Приложение аварийно завершит работу, если попытается использовать CTaskDialog на компьютере, который не поддерживает CTaskDialog класс.Your application will crash if it tries to use a CTaskDialog on a computer that does not support the CTaskDialog class.

ПримерExample

// 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:: ЛоадкоммандконтролсCTaskDialog::LoadCommandControls

Добавляет элементы управления "Кнопка" с помощью данных из таблицы строк.Adds command button controls by using data from the string table.

void LoadCommandControls(
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast);

ПараметрыParameters

нидкоммандконтролсфирстnIDCommandControlsFirst
окне Идентификатор строки первой команды.[in] The string ID of the first command.

нидкоммандконтролсластnIDCommandControlsLast
окне Идентификатор строки последней команды.[in] The string ID of the last command.

КомментарииRemarks

Этот метод создает командные элементы управления с помощью данных из файла ресурсов приложения.This method creates command button controls by using data from the resource file of your application. Таблица строк в файле ресурсов содержит несколько строк со связанными идентификаторами строк.The string table in the resource file has several strings with associated string IDs. Новые элементы управления кнопки команд, добавленные с помощью этого метода, используют строку для заголовка элемента управления и идентификатор строки для идентификатора элемента управления.New command button controls added by using this method use the string for the control's caption and the string ID for the control's ID. Диапазон выбранных строк предоставляется нидкоммандконтролсфирст и нкоммандконтролсласт включительно.The range of strings selected is provided by nIDCommandControlsFirst and nCommandControlsLast, inclusive. Если в диапазоне есть пустая запись, метод не добавляет элемент управления «кнопка» для этой записи.If there is an empty entry in the range, the method does not add a command button control for that entry.

По умолчанию новые элементы управления кнопки команд включены и не нуждаются в повышении прав.By default, new command button controls are enabled and do not require elevation.

Пример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);

CTaskDialog:: ЛоадрадиобуттонсCTaskDialog::LoadRadioButtons

Добавляет элементы управления "переключатель", используя данные из таблицы строк.Adds radio button controls by using data from the string table.

void LoadRadioButtons(
    int nIDRadioButtonsFirst,
    int nIDRadioButtonsLast);

ПараметрыParameters

нидрадиобуттонсфирстnIDRadioButtonsFirst
окне Идентификатор строки первого переключателя.[in] The string ID of the first radio button.

нидрадиобуттонсластnIDRadioButtonsLast
окне Идентификатор строки последнего переключателя.[in] The string ID of the last radio button.

КомментарииRemarks

Этот метод создает переключатели, используя данные из файла ресурсов приложения.This method creates radio buttons by using data from the resource file of your application. Таблица строк в файле ресурсов содержит несколько строк со связанными идентификаторами строк.The string table in the resource file has several strings with associated string IDs. Новые переключатели, добавленные с помощью этого метода, используют строку для заголовка переключателя и идентификатор строки для идентификатора переключателя.New radio buttons added by using this method use the string for the radio button's caption and the string ID for the radio button's ID. Диапазон выбранных строк предоставляется нидрадиобуттонсфирст и нрадиобуттонсласт включительно.The range of strings selected is provided by nIDRadioButtonsFirst and nRadioButtonsLast, inclusive. При наличии пустой записи в диапазоне метод не добавляет переключатель для этой записи.If there is an empty entry in the range, the method does not add a radio button for that entry.

По умолчанию новые переключатели включены.By default, new radio buttons are enabled.

Пример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.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:: NavigateToCTaskDialog::NavigateTo

Передает фокус на другой CTaskDialog .Transfers the focus to another CTaskDialog.

protected:
void NavigateTo(CTaskDialog& oTaskDialog) const;

ПараметрыParameters

отаскдиалогoTaskDialog
окне Объект CTaskDialog , который получает фокус.[in] The CTaskDialog that receives the focus.

КомментарииRemarks

Этот метод скрывает текущий CTaskDialog при отображении отаскдиалог.This method hides the current CTaskDialog when it displays the oTaskDialog. Отаскдиалог отображается в том же расположении, что и текущий CTaskDialog .The oTaskDialog is displayed in the same location as the current CTaskDialog.

CTaskDialog:: ОнкоммандконтролкликкCTaskDialog::OnCommandControlClick

Платформа вызывает этот метод, когда пользователь щелкает элемент управления "Кнопка".The framework calls this method when the user clicks a command button control.

virtual HRESULT OnCommandControlClick(int nCommandControlID);

ПараметрыParameters

нкоммандконтролидnCommandControlID
окне Идентификатор элемента управления кнопки команды, выбранного пользователем.[in] The ID of the command button control that the user selected.

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnCreateCTaskDialog::OnCreate

Платформа вызывает этот метод после создания CTaskDialog .The framework calls this method after it creates the CTaskDialog.

virtual HRESULT OnCreate();

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnDestroyCTaskDialog::OnDestroy

Платформа вызывает этот метод непосредственно перед уничтожением CTaskDialog .The framework calls this method immediately before it destroys the CTaskDialog.

virtual HRESULT OnDestroy();

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: ОнекспандбуттонкликкCTaskDialog::OnExpandButtonClick

Платформа вызывает этот метод, когда пользователь нажимает кнопку расширения.The framework calls this method when the user clicks on the expansion button.

virtual HRESULT OnExpandButtonClicked(BOOL bExpanded);

ПараметрыParameters

бекспандедbExpanded
окне Ненулевое значение указывает на то, что дополнительные сведения отображаются. значение 0 указывает, что дополнительные сведения скрыты.[in] A nonzero value indicates the extra information is displayed; 0 indicates the extra information is hidden.

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnHelpCTaskDialog::OnHelp

Платформа вызывает этот метод, когда пользователь запрашивает справку.The framework calls this method when the user requests help.

virtual HRESULT OnHelp();

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: ОнхиперлинккликкCTaskDialog::OnHyperlinkClick

Платформа вызывает этот метод, когда пользователь щелкает гиперссылку.The framework calls this method when the user clicks on a hyperlink.

virtual HRESULT OnHyperlinkClick(const CString& strHref);

ПараметрыParameters

стрхрефstrHref
окне Строка, представляющая гиперссылку.[in] The string that represents the hyperlink.

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Этот метод вызывает ShellExecute перед возвратом S_OK.This method calls ShellExecute before it returns S_OK.

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnInitCTaskDialog::OnInit

Платформа вызывает этот метод при CTaskDialog инициализации.The framework calls this method when the CTaskDialog is initialized.

virtual HRESULT OnInit();

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: ОннавигатепажеCTaskDialog::OnNavigatePage

Платформа вызывает этот метод в ответ на метод CTaskDialog:: NavigateTo .The framework calls this method in response to the CTaskDialog::NavigateTo method.

virtual HRESULT OnNavigatePage();

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: ОнрадиобуттонкликкCTaskDialog::OnRadioButtonClick

Платформа вызывает этот метод, когда пользователь выбирает элемент управления "переключатель".The framework calls this method when the user selects a radio button control.

virtual HRESULT OnRadioButtonClick(int nRadioButtonID);

ПараметрыParameters

нрадиобуттонидnRadioButtonID
окне Идентификатор элемента управления "переключатель", который щелкнул пользователь.[in] The ID of the radio button control that the user clicked.

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: OnTimeCTaskDialog::OnTimer

Платформа вызывает этот метод по истечении срока действия таймера.The framework calls this method when the timer expires.

virtual HRESULT OnTimer(long lTime);

ПараметрыParameters

лтимеlTime
окне Время в миллисекундах с момента CTaskDialog создания или сброса таймера.[in] Time in milliseconds since the CTaskDialog was created or the timer was reset.

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: ОнверификатиончеккбокскликкCTaskDialog::OnVerificationCheckboxClick

Платформа вызывает этот метод, когда пользователь щелкает флажок проверки.The framework calls this method when the user clicks the verification check box.

virtual HRESULT OnVerificationCheckboxClick(BOOL bChecked);

ПараметрыParameters

бчеккедbChecked
окне Значение TRUE указывает, что флажок проверки установлен; Значение FALSE указывает, что это не так.[in] TRUE indicates the verification check box is selected; FALSE indicates it is not.

Возвращаемое значениеReturn Value

Реализация по умолчанию возвращает S_OK.The default implementation returns S_OK.

КомментарииRemarks

Переопределите этот метод в производном классе, чтобы реализовать пользовательское поведение.Override this method in a derived class to implement custom behavior.

CTaskDialog:: РемовеаллкоммандконтролсCTaskDialog::RemoveAllCommandControls

Удаляет все элементы управления «кнопка» из CTaskDialog .Removes all the command button controls from the CTaskDialog.

void RemoveAllCommandControls();

Пример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);

CTaskDialog:: РемовеаллрадиобуттонсCTaskDialog::RemoveAllRadioButtons

Удаляет все переключатели из CTaskDialog .Removes all the radio buttons from the CTaskDialog.

void RemoveAllRadioButtons();

Пример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.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:: СеткоммандконтролоптионсCTaskDialog::SetCommandControlOptions

Обновляет элемент управления «кнопка» в CTaskDialog .Updates a command button control on the CTaskDialog.

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

ПараметрыParameters

нкоммандконтролидnCommandControlID
окне Идентификатор обновляемого элемента управления команды.[in] The ID of the command control to update.

бенабледbEnabled
окне Логический параметр, указывающий, включен или отключен указанный элемент управления "кнопка команды".[in] A Boolean parameter that indicates if the specified command button control is enabled or disabled.

брекуиреселеватионbRequiresElevation
окне Логический параметр, указывающий, требуется ли повышение прав для указанного элемента управления "Командная кнопка".[in] A Boolean parameter that indicates if the specified command button control requires elevation.

КомментарииRemarks

Этот метод используется для изменения того, включен ли элемент управления "кнопка команды" или требует повышения прав после добавления в CTaskDialog класс.Use this method to change whether a command button control is enabled or requires elevation after it has been added to the CTaskDialog class.

Пример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);

CTaskDialog:: СеткоммонбуттоноптионсCTaskDialog::SetCommonButtonOptions

Обновляет подмножество общих кнопок для включения и требует повышения прав UAC.Updates a subset of common buttons to be enabled and to require UAC elevation.

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

ПараметрыParameters

ндисабледбуттонмаскnDisabledButtonMask
окне Маска для общих кнопок для отключения.[in] A mask for the common buttons to disable.

нелеватионбуттонмаскnElevationButtonMask
окне Маска для общих кнопок, требующих повышения прав.[in] A mask for the common buttons that require elevation.

КомментарииRemarks

Можно задать общие кнопки, доступные экземпляру класса CTaskDialog , с помощью конструктора CTaskDialog:: CTaskDialog и метода CTaskDialog:: SetCommonButtons.You can set the common buttons available to an instance of the CTaskDialog Class by using the constructor CTaskDialog::CTaskDialog and the method CTaskDialog::SetCommonButtons. CTaskDialog::SetCommonButtonOptions не поддерживает добавление новых общих кнопок.CTaskDialog::SetCommonButtonOptions does not support adding new common buttons.

При использовании этого метода для отключения или повышения уровня общей кнопки, которая недоступна для этого CTaskDialog метода, этот метод создает исключение с помощью макроса проверки .If you use this method to disable or elevate a common button that is not available for this CTaskDialog, this method throws an exception by using the ENSURE macro.

Этот метод включает любую кнопку, доступную для, CTaskDialog но не в ндисабледбуттонмаск, даже если она была ранее отключена.This method enables any button that is available to the CTaskDialog but is not in the nDisabledButtonMask, even if it was previously disabled. Этот метод рассматривает повышение прав подобным образом: он записывает общие кнопки, не нуждающиеся в повышении прав, если общая кнопка доступна, но не включена в нелеватионбуттонмаск.This method treats elevation in a similar manner: it records common buttons as not requiring elevation if the common button is available but not included in nElevationButtonMask.

Пример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);

// 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:: SetCommonButtonsCTaskDialog::SetCommonButtons

Добавляет общие кнопки в CTaskDialog .Adds common buttons to the CTaskDialog.

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

ПараметрыParameters

нбуттонмаскnButtonMask
окне Маска кнопок, добавляемых в CTaskDialog .[in] A mask of the buttons to add to the CTaskDialog.

ндисабледбуттонмаскnDisabledButtonMask
окне Маска кнопок для отключения.[in] A mask of the buttons to disable.

нелеватионбуттонмаскnElevationButtonMask
окне Маска кнопок, требующих повышения прав.[in] A mask of the buttons that require elevation.

КомментарииRemarks

Этот метод нельзя вызвать после создания окна просмотра для данного экземпляра CTaskDialog класса.You cannot call this method after the display window for this instance of the CTaskDialog class is created. В противном случае этот метод выдаст исключение.If you do, this method throws an exception.

Кнопки, указанные нбуттонмаск , переопределяют все общие кнопки, ранее добавленные в CTaskDialog .The buttons indicated by nButtonMask override any common buttons previously added to the CTaskDialog. Доступны только кнопки, указанные в нбуттонмаск .Only the buttons indicated in nButtonMask are available.

Если ндисабледбуттонмаск или нелеватионбуттонмаск содержат кнопку, которая не находится в нбуттонмаск, этот метод создает исключение с помощью макроса проверки .If either nDisabledButtonMask or nElevationButtonMask contain a button that is not in nButtonMask, this method throws an exception by using the ENSURE macro.

По умолчанию все общие кнопки включены и не нуждаются в повышении прав.By default, all common buttons are enabled and do not require elevation.

Пример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);

// 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:: СетконтентCTaskDialog::SetContent

Обновляет содержимое CTaskDialog .Updates the content of the CTaskDialog.

void SetContent(const CString& strContent);

ПараметрыParameters

стрконтентstrContent
окне Строка, отображаемая пользователю.[in] The string to display to the user.

КомментарииRemarks

Содержимое CTaskDialog класса — это текст, который отображается для пользователя в основном разделе диалогового окна.The content of the CTaskDialog class is the text that is displayed to the user in the main section of the dialog box.

Пример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);

// 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:: СетдефаулткоммандконтролCTaskDialog::SetDefaultCommandControl

Задает элемент управления "кнопка по умолчанию".Specifies the default command button control.

void SetDefaultCommandControl(int nCommandControlID);

ПараметрыParameters

нкоммандконтролидnCommandControlID
окне Идентификатор элемента управления кнопки команды, который будет использоваться по умолчанию.[in] The ID of the command button control to be the default.

КомментарииRemarks

Кнопка по умолчанию — это элемент управления, который выбирается при CTaskDialog первом отображении пользователю.The default command button control is the control that is selected when the CTaskDialog is first displayed to the user.

Этот метод создает исключение, если не удается найти элемент управления "кнопка команды", указанный параметром нкоммандконтролид.This method throws an exception if it cannot find the command button control specified by nCommandControlID.

Пример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);

CTaskDialog:: СетдефаултрадиобуттонCTaskDialog::SetDefaultRadioButton

Задает переключатель по умолчанию.Specifies the default radio button.

void SetDefaultRadioButton(int nRadioButtonID);

ПараметрыParameters

нрадиобуттонидnRadioButtonID
окне Идентификатор переключателя, который будет использоваться по умолчанию.[in] The ID of the radio button to be the default.

КомментарииRemarks

Переключатель по умолчанию — это кнопка, которая выбирается при CTaskDialog первом отображении пользователя.The default radio button is the button that is selected when the CTaskDialog is first displayed to the user.

Этот метод создает исключение, если не удается найти переключатель, указанный параметром нрадиобуттонид.This method throws an exception if it cannot find the radio button specified by nRadioButtonID.

Пример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.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:: СетдиалогвидсCTaskDialog::SetDialogWidth

Корректирует ширину CTaskDialog .Adjusts the width of the CTaskDialog.

void SetDialogWidth(int nWidth = 0);

ПараметрыParameters

нвидсnWidth
окне Ширина диалогового окна в пикселях.[in] The width of the dialog box, in pixels.

КомментарииRemarks

Параметр нвидс должен быть больше или равен 0.The parameter nWidth must be greater than or equal to 0. В противном случае этот метод выдает исключение.Otherwise, this method throws an exception.

Если нвидс имеет значение 0, этот метод задает для диалогового окна размер по умолчанию.If nWidth is set to 0, this method sets the dialog box to the default size.

Пример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);

// 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:: SetExpansionAreaCTaskDialog::SetExpansionArea

Обновляет область расширения CTaskDialog .Updates the expansion area of the CTaskDialog.

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

ПараметрыParameters

стрекспандединформатионstrExpandedInformation
окне Строка, CTaskDialog отображаемая в основном тексте диалогового окна при нажатии пользователем кнопки расширения.[in] The string that the CTaskDialog displays in the main body of the dialog box when the user clicks the expansion button.

стрколлапседлабелstrCollapsedLabel
окне Строка, CTaskDialog отображаемая рядом с кнопкой расширения при сворачивании развернутой области.[in] The string that the CTaskDialog displays next to the expansion button when the expanded area is collapsed.

стрекспандедлабелstrExpandedLabel
окне Строка, CTaskDialog отображаемая рядом с кнопкой расширения при отображении развернутой области.[in] The string that the CTaskDialog displays next to the expansion button when the expanded area is displayed.

КомментарииRemarks

Область расширения CTaskDialog класса позволяет предоставить пользователю дополнительные сведения.The expansion area of the CTaskDialog class enables you to provide additional information to the user. Область расширения находится в основной части CTaskDialog , расположенной непосредственно под заголовком и строкой содержимого.The expansion area is in the main part of the CTaskDialog, located immediately underneath the title and content string.

При CTaskDialog первом отображении она не отображает развернутую информацию и помещается strCollapsedLabel рядом с кнопкой расширения.When the CTaskDialog is first displayed, it does not show the expanded information and puts strCollapsedLabel next to the expansion button. Когда пользователь нажимает кнопку расширения, CTaskDialog отображает стрекспандединформатион и изменяет метку на стрекспандедлабел.When the user clicks the expansion button, the CTaskDialog displays strExpandedInformation and changes the label to strExpandedLabel.

Пример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);

// 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:: СетфутериконCTaskDialog::SetFooterIcon

Обновляет значок нижнего колонтитула CTaskDialog .Updates the footer icon of the CTaskDialog.

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

ПараметрыParameters

хфутериконhFooterIcon
окне Новый значок для CTaskDialog .[in] The new icon for the CTaskDialog.

лпсзфутериконlpszFooterIcon
окне Новый значок для CTaskDialog .[in] The new icon for the CTaskDialog.

КомментарииRemarks

Значок нижнего колонтитула отображается в нижней части класса CTaskDialog.The footer icon is displayed on the bottom of the CTaskDialog Class. У него может быть связанный текст нижнего колонтитула.It can have associated footer text. Текст нижнего колонтитула можно изменить с помощью CTaskDialog:: сетфутертекст.You can change the footer text with CTaskDialog::SetFooterText.

Этот метод создает исключение с помощью макроса проверки , если CTaskDialog отображается или если входной параметр имеет значение null.This method throws an exception with the ENSURE macro if the CTaskDialog is displayed or the input parameter is NULL.

CTaskDialogМожет принимать только HICON или LPCWSTR в качестве значка нижнего колонтитула.A CTaskDialog can only accept an HICON or LPCWSTR as a footer icon. Это можно настроить с помощью параметра TDF_USE_HICON_FOOTER в конструкторе или CTaskDialog:: сетоптионс.This is configured by setting the option TDF_USE_HICON_FOOTER in the constructor or CTaskDialog::SetOptions. По умолчанию параметр CTaskDialog настроен для использования в LPCWSTR качестве типа входных данных для значка нижнего колонтитула.By default, the CTaskDialog is configured to use LPCWSTR as the input type for the footer icon. Этот метод создает исключение при попытке установить значок с использованием недопустимого типа.This method generates an exception if you try to set the icon using the inappropriate type.

Пример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);

// 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:: СетфутертекстCTaskDialog::SetFooterText

Обновляет текст нижнего колонтитула CTaskDialog .Updates the text on the footer of the CTaskDialog.

void SetFooterText(const CString& strFooterText);

ПараметрыParameters

стрфутертекстstrFooterText
окне Новый текст для нижнего колонтитула.[in] The new text for the footer.

КомментарииRemarks

Значок нижнего колонтитула отображается рядом с текстом нижнего колонтитула в нижней части CTaskDialog .The footer icon appears next to the footer text on the bottom of the CTaskDialog. Значок нижнего колонтитула можно изменить с помощью CTaskDialog:: сетфутерикон.You can change the footer icon with CTaskDialog::SetFooterIcon.

Пример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);

// 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:: СетмаиниконCTaskDialog::SetMainIcon

Обновляет основной значок CTaskDialog .Updates the main icon of the CTaskDialog.

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

ПараметрыParameters

хмаиниконhMainIcon
окне Новый значок.[in] The new icon.

лпсзмаиниконlpszMainIcon
окне Новый значок.[in] The new icon.

КомментарииRemarks

Этот метод создает исключение с помощью макроса проверки , если CTaskDialog отображается или если входной параметр имеет значение null.This method throws an exception with the ENSURE macro if the CTaskDialog is displayed or the input parameter is NULL.

CTaskDialogМожет принимать или только в HICON LPCWSTR качестве главного значка.A CTaskDialog can only accept an HICON or LPCWSTR as a main icon. Это можно настроить, задав параметр TDF_USE_HICON_MAIN в конструкторе или в методе CTaskDialog:: сетоптионс .You can configure this by setting the TDF_USE_HICON_MAIN option in the constructor or in the CTaskDialog::SetOptions method. По умолчанию параметр CTaskDialog настроен для использования в LPCWSTR качестве типа входных данных для главного значка.By default, the CTaskDialog is configured to use LPCWSTR as the input type for the main icon. Этот метод создает исключение при попытке установить значок с использованием недопустимого типа.This method generates an exception if you try to set the icon using the inappropriate type.

Пример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);

// 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:: СетмаининструктионCTaskDialog::SetMainInstruction

Обновляет основную инструкцию CTaskDialog .Updates the main instruction of the CTaskDialog.

void SetMainInstruction(const CString& strInstructions);

ПараметрыParameters

стринструктионсstrInstructions
окне Новая основная инструкция.[in] The new main instruction.

КомментарииRemarks

Основная инструкция CTaskDialog класса — текст, отображаемый пользователю полужирным шрифтом.The main instruction of the CTaskDialog class is text displayed to the user in a large bold font. Он находится в диалоговом окне под заголовком окна.It is located in the dialog box underneath the title bar.

Пример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);

// 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:: СетоптионсCTaskDialog::SetOptions

Настраивает параметры для CTaskDialog .Configures the options for the CTaskDialog.

void SetOptions(int nOptionFlag);

ПараметрыParameters

ноптионфлагnOptionFlag
окне Набор флагов, используемых для CTaskDialog .[in] The set of flags to use for the CTaskDialog.

КомментарииRemarks

Этот метод очищает все текущие параметры для CTaskDialog .This method clears all the current options for the CTaskDialog. Чтобы сохранить текущие параметры, необходимо сначала извлечь их с помощью CTaskDialog:: и объединить с параметрами, которые необходимо задать.To preserve the current options, you must retrieve them first with CTaskDialog::GetOptions and combine them with the options that you want to set.

В следующей таблице перечислены все допустимые параметры.The following table lists all the valid options.

ИмяName ОписаниеDescription
TDF_ENABLE_HYPERLINKSTDF_ENABLE_HYPERLINKS Включает гиперссылки в CTaskDialog .Enables hyperlinks in the CTaskDialog.
TDF_USE_HICON_MAINTDF_USE_HICON_MAIN Настраивает CTaskDialog для использования HICON для главного значка.Configures the CTaskDialog to use a HICON for the main icon. Альтернативой является использование LPCWSTR .The alternative is to use a LPCWSTR.
TDF_USE_HICON_FOOTERTDF_USE_HICON_FOOTER Настраивает CTaskDialog для использования HICON для значка нижнего колонтитула.Configures the CTaskDialog to use a HICON for the footer icon. Альтернативой является использование LPCWSTR .The alternative is to use a LPCWSTR.
TDF_ALLOW_DIALOG_CANCELLATIONTDF_ALLOW_DIALOG_CANCELLATION Позволяет пользователю закрывать объект с CTaskDialog помощью клавиатуры или значка в правом верхнем углу диалогового окна, даже если кнопка Отмена недоступна.Enables the user to close the CTaskDialog by using the keyboard or by using the icon in the upper-right corner of the dialog box, even if the Cancel button is not enabled. Если этот флаг не установлен и кнопка Отмена не включена, пользователь не может закрыть диалоговое окно, нажав Alt + F4, клавишу Escape или кнопку Закрыть в строке заголовка.If this flag is not set and the Cancel button is not enabled, the user cannot close the dialog box by using Alt+F4, the Escape key, or the title bar's close button.
TDF_USE_COMMAND_LINKSTDF_USE_COMMAND_LINKS Настраивает CTaskDialog для использования командных элементов управления.Configures the CTaskDialog to use command button controls.
TDF_USE_COMMAND_LINKS_NO_ICONTDF_USE_COMMAND_LINKS_NO_ICON Настраивает CTaskDialog для использования командных элементов управления без отображения значка рядом с элементом управления.Configures the CTaskDialog to use command button controls without displaying an icon next to the control. TDF_USE_COMMAND_LINKS переопределяет TDF_USE_COMMAND_LINKS_NO_ICON.TDF_USE_COMMAND_LINKS overrides TDF_USE_COMMAND_LINKS_NO_ICON.
TDF_EXPAND_FOOTER_AREATDF_EXPAND_FOOTER_AREA Указывает, что область расширения в настоящее время развернута.Indicates the expansion area is currently expanded.
TDF_EXPANDED_BY_DEFAULTTDF_EXPANDED_BY_DEFAULT Определяет, развернута ли область расширения по умолчанию.Determines whether the expansion area is expanded by default.
TDF_VERIFICATION_FLAG_CHECKEDTDF_VERIFICATION_FLAG_CHECKED Указывает, что флажок проверки установлен в данный момент.Indicates the verification check box is currently selected.
TDF_SHOW_PROGRESS_BARTDF_SHOW_PROGRESS_BAR Настраивает CTaskDialog для вывода индикатора выполнения.Configures the CTaskDialog to display a progress bar.
TDF_SHOW_MARQUEE_PROGRESS_BARTDF_SHOW_MARQUEE_PROGRESS_BAR Настраивает индикатор выполнения, чтобы он был полосой выполнения бегущей строки.Configures the progress bar to be a marquee progress bar. Если этот параметр включен, необходимо задать для TDF_SHOW_PROGRESS_BAR ожидаемое поведение.If you enable this option, you must set TDF_SHOW_PROGRESS_BAR to have the expected behavior.
TDF_CALLBACK_TIMERTDF_CALLBACK_TIMER Указывает, что CTaskDialog интервал обратного вызова равен приблизительно 200 миллисекундам.Indicates that the CTaskDialog callback interval is set to approximately 200 milliseconds.
TDF_POSITION_RELATIVE_TO_WINDOWTDF_POSITION_RELATIVE_TO_WINDOW Настраивает объект CTaskDialog для центрирования относительно родительского окна.Configures the CTaskDialog to be centered relative to the parent window. Если этот флаг не включен, CTaskDialog центр отсчитывается относительно монитора.If this flag is not enabled, the CTaskDialog is centered relative to the monitor.
TDF_RTL_LAYOUTTDF_RTL_LAYOUT Настраивает CTaskDialog для режима чтения справа налево.Configures the CTaskDialog for a right-to-left reading layout.
TDF_NO_DEFAULT_RADIO_BUTTONTDF_NO_DEFAULT_RADIO_BUTTON Указывает, что переключатель не выбран при CTaskDialog отображении.Indicates that no radio button is selected when the CTaskDialog appears.
TDF_CAN_BE_MINIMIZEDTDF_CAN_BE_MINIMIZED Позволяет пользователю в минимальном объеме CTaskDialog .Enables the user to minimize the CTaskDialog. Для поддержки этого параметра параметр CTaskDialog не может быть модальным.To support this option, the CTaskDialog cannot be modal. MFC не поддерживает этот параметр, так как MFC не поддерживает немодальное CTaskDialog .MFC does not support this option because MFC does not support a modeless CTaskDialog.

Пример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);

// 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:: СетпрогрессбармаркуиCTaskDialog::SetProgressBarMarquee

Настраивает полосу бегущей строки для CTaskDialog и добавляет ее в диалоговое окно.Configures a marquee bar for the CTaskDialog and adds it to the dialog box.

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

ПараметрыParameters

бенабледbEnabled
окне Значение TRUE, чтобы включить строку бегущей строки; Значение FALSE, чтобы отключить строку бегущей строки и удалить ее из CTaskDialog .[in] TRUE to enable the marquee bar; FALSE to disable the marquee bar and remove it from the CTaskDialog.

нмаркуиспидnMarqueeSpeed
окне Целое число, указывающее скорость полосы бегущей строки.[in] An integer that indicates the speed of the marquee bar.

КомментарииRemarks

Полоса бегущей строки отображается под основным текстом CTaskDialog класса.The marquee bar appears underneath the main text of the CTaskDialog class.

Используйте нмаркуиспид , чтобы задать скорость линейки бегущей строки; большие значения указывают на более низкую скорость.Use nMarqueeSpeed to set the speed of the marquee bar; larger values indicate a slower speed. Значение 0 для нмаркуиспид делает полосу бегущей строки в скорости по умолчанию для Windows.A value of 0 for nMarqueeSpeed makes the marquee bar move at the default speed for Windows.

Этот метод создает исключение с помощью макроса , если нмаркуиспид меньше 0.This method throws an exception with the ENSURE macro if nMarqueeSpeed is less than 0.

Пример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);

// 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:: СетпрогрессбарпоситионCTaskDialog::SetProgressBarPosition

Настраивает расположение индикатора выполнения.Adjusts the position of the progress bar.

void SetProgressBarPosition(int nProgressPos);

ПараметрыParameters

нпрогресспосnProgressPos
окне Расположение индикатора выполнения.[in] The position for the progress bar.

КомментарииRemarks

Этот метод создает исключение с помощью макроса , если нпрогресспос не находится в области индикатора выполнения.This method throws an exception with the ENSURE macro if nProgressPos is not in the progress bar range. Диапазон индикаторов выполнения можно изменить с помощью CTaskDialog:: сетпрогрессбарранже.You can change the progress bar range with CTaskDialog::SetProgressBarRange.

Пример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);

// 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:: СетпрогрессбарранжеCTaskDialog::SetProgressBarRange

Настраивает диапазон индикатора выполнения.Adjusts the range of the progress bar.

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

ПараметрыParameters

нранжеминnRangeMin
окне Нижняя граница индикатора выполнения.[in] The lower bound of the progress bar.

нранжемаксnRangeMax
окне Верхняя граница индикатора выполнения.[in] The upper bound of the progress bar.

КомментарииRemarks

Расположение индикатора выполнения задается относительно нранжемин и нранжемакс.The position of the progress bar is relative to nRangeMin and nRangeMax. Например, если нранжемин имеет значение 50, а нранжемакс — 100, то на индикаторе выполнения устанавливается расположение 75.For example, if nRangeMin is 50 and nRangeMax is 100, a position of 75 is halfway across the progress bar. Чтобы задать расположение индикатора выполнения, используйте CTaskDialog:: сетпрогрессбарпоситион .Use CTaskDialog::SetProgressBarPosition to set the position of the progress bar.

Чтобы отобразить индикатор выполнения, параметр TDF_SHOW_PROGRESS_BAR должен быть включен и TDF_SHOW_MARQUEE_PROGRESS_BAR не должен быть включен.To display the progress bar, the option TDF_SHOW_PROGRESS_BAR must be enabled and TDF_SHOW_MARQUEE_PROGRESS_BAR must not be enabled. Этот метод автоматически задает TDF_SHOW_PROGRESS_BAR и очищает TDF_SHOW_MARQUEE_PROGRESS_BAR.This method automatically sets TDF_SHOW_PROGRESS_BAR and clears TDF_SHOW_MARQUEE_PROGRESS_BAR. Используйте CTaskDialog:: сетоптионс , чтобы вручную изменить параметры для этого экземпляра класса CTaskDialog.Use CTaskDialog::SetOptions to manually change the options for this instance of the CTaskDialog Class.

Этот метод создает исключение с помощью макроса проверки , если Нранжемин не меньше нранжемакс.This method throws an exception with the ENSURE macro if nRangeMin is not less than nRangeMax. Этот метод также вызывает исключение, если объект CTaskDialog уже отображается и имеет полосу выполнения бегущей строки.This method also throws an exception if the CTaskDialog is already displayed and has a marquee progress bar.

Пример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);

// 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:: СетпрогрессбарстатеCTaskDialog::SetProgressBarState

Задает состояние индикатора выполнения и отображает его в CTaskDialog .Sets the state of the progress bar and displays it on the CTaskDialog.

void SetProgressBarState(int nState = PBST_NORMAL);

ПараметрыParameters

NсведенияnState
окне Состояние индикатора выполнения.[in] The state of the progress bar. Возможные значения см. в разделе "Примечания".See the Remarks section for the possible values.

КомментарииRemarks

Этот метод создает исключение с помощью макроса , если объект CTaskDialog уже отображается и имеет полосу выполнения бегущей строки.This method throws an exception with the ENSURE macro if the CTaskDialog is already displayed and has a marquee progress bar.

В следующей таблице перечислены возможные значения для nсведения.The following table lists the possible values for nState. Во всех этих случаях индикатор выполнения будет заполняться обычным цветом до тех пор, пока не достигнет назначенной позиции окончания.In all these cases, the progress bar will fill with the regular color until it reaches the designated stop position. На этом этапе цвет изменится в зависимости от состояния.At that point it will change color based on the state.

ИмяName ОписаниеDescription
PBST_NORMALPBST_NORMAL После заполнения индикатора выполнения элемент CTaskDialog не меняет цвет линии.After the progress bar fills, the CTaskDialog does not change the color of the bar. По умолчанию обычный цвет горит зеленым цветом.By default, the regular color is green.
PBST_ERRORPBST_ERROR После заполнения индикатора выполнения CTaskDialog изменяет цвет полосы на цвет ошибки.After the progress bar fills, the CTaskDialog changes the color of the bar to the error color. По умолчанию это красный цвет.By default, this is red.
PBST_PAUSEDPBST_PAUSED После заполнения индикатора выполнения CTaskDialog изменится цвет полосы на приостановку.After the progress bar fills, the CTaskDialog changes the color of the bar to the paused color. По умолчанию это желтый цвет.By default, this is yellow.

Вы можете задать место остановки индикатора выполнения с помощью CTaskDialog:: сетпрогрессбарпоситион.You can set where the progress bar stops with CTaskDialog::SetProgressBarPosition.

Пример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);

// 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:: СетрадиобуттоноптионсCTaskDialog::SetRadioButtonOptions

Включает или отключает переключатель.Enables or disables a radio button.

void SetRadioButtonOptions(
    int nRadioButtonID,
    BOOL bEnabled);

ПараметрыParameters

нрадиобуттонидnRadioButtonID
окне Идентификатор элемента управления "переключатель".[in] The ID of the radio button control.

бенабледbEnabled
окне Значение TRUE, чтобы включить переключатель; Значение FALSE, чтобы отключить переключатель.[in] TRUE to enable the radio button; FALSE to disable the radio button.

КомментарииRemarks

Этот метод создает исключение с помощью макроса проверки , если нрадиобуттонид не является допустимым идентификатором для переключателя.This method throws an exception with the ENSURE macro if nRadioButtonID is not a valid ID for a radio button.

Пример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.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:: СетверификатиончеккбоксCTaskDialog::SetVerificationCheckbox

Устанавливает флажок проверять состояние проверки.Sets the checked state of the verification check box.

void SetVerificationCheckbox(BOOL bChecked);

ПараметрыParameters

бчеккедbChecked
окне Значение TRUE, чтобы флажок проверки был установлен при CTaskDialog отображении. Значение FALSE, чтобы флажок проверки не был снят при CTaskDialog отображении.[in] TRUE to have the verification check box selected when the CTaskDialog is displayed; FALSE to have the verification check box unselected when the CTaskDialog is displayed.

Пример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);

// 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:: SetVerificationCheckboxTextCTaskDialog::SetVerificationCheckboxText

Задает текст, отображаемый справа от флажка проверки.Sets the text that is displayed to the right of the verification check box.

void SetVerificationCheckboxText(CString& strVerificationText);

ПараметрыParameters

стрверификатионтекстstrVerificationText
окне Текст, отображаемый этим методом рядом с флажком проверки.[in] The text that this method displays next to the verification check box.

КомментарииRemarks

Этот метод создает исключение с помощью макроса проверки , если этот экземпляр CTaskDialog класса уже отображается.This method throws an exception with the ENSURE macro if this instance of the CTaskDialog class is already displayed.

Пример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);

// 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:: СетвиндовтитлеCTaskDialog::SetWindowTitle

Задает заголовок CTaskDialog .Sets the title of the CTaskDialog.

void SetWindowTitle(CString& strWindowTitle);

ПараметрыParameters

стрвиндовтитлеstrWindowTitle
окне Новый заголовок для CTaskDialog .[in] The new title for the CTaskDialog.

RemarksRemarks

Пример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);

// 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:: ShowDialogCTaskDialog::ShowDialog

Создает и отображает CTaskDialog .Creates and displays a 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(""));

ПараметрыParameters

стрконтентstrContent
окне Строка, используемая для содержимого CTaskDialog .[in] The string to use for the content of the CTaskDialog.

стрмаининструктионstrMainInstruction
окне Основная инструкция CTaskDialog .[in] The main instruction of the CTaskDialog.

стртитлеstrTitle
окне Заголовок CTaskDialog .[in] The title of the CTaskDialog.

нидкоммандконтролсфирстnIDCommandControlsFirst
окне Идентификатор строки первой команды.[in] The string ID of the first command.

нидкоммандконтролсластnIDCommandControlsLast
окне Идентификатор строки последней команды.[in] The string ID of the last command.

нкоммонбуттонсnCommonButtons
окне Маска кнопок, добавляемых в CTaskDialog .[in] A mask of the buttons to add to the CTaskDialog.

нтаскдиалогоптионсnTaskDialogOptions
окне Набор параметров, используемых для CTaskDialog .[in] The set of options to use for the CTaskDialog.

стрфутерstrFooter
окне Строка, используемая в качестве нижнего колонтитула.[in] The string to use as the footer.

Возвращаемое значениеReturn Value

Целое число, соответствующее выбору, сделанному пользователем.An integer that corresponds to the selection made by the user.

КомментарииRemarks

Этот статический метод позволяет создать экземпляр CTaskDialog класса без явного создания CTaskDialog объекта в коде.This static method enables you to create an instance of the CTaskDialog class without explicitly creating a CTaskDialog object in your code. Поскольку CTaskDialog объект отсутствует, вы не можете вызывать другие методы, CTaskDialog Если этот метод используется для отображения CTaskDialog пользователю.Because there is no CTaskDialog object, you cannot call any other methods of the CTaskDialog if you use this method to show a CTaskDialog to the user.

Этот метод создает командные элементы управления с помощью данных из файла ресурсов приложения.This method creates command button controls by using data from the resource file of your application. Таблица строк в файле ресурсов содержит несколько строк со связанными идентификаторами строк.The string table in the resource file has several strings with associated string IDs. Этот метод добавляет элемент управления «кнопка» для каждой допустимой записи в таблице строк между нидкоммандконтролсфирст и нкоммандконтролсласт включительно.This method adds a command button control for each valid entry in the string table between nIDCommandControlsFirst and nCommandControlsLast, inclusive. Для этих элементов управления кнопки строка в таблице строк представляет собой заголовок элемента управления, а идентификатор строки — идентификатор элемента управления.For these command button controls, the string in the string table is the control's caption and the string ID is the control's ID.

Список допустимых параметров см. в разделе CTaskDialog:: сетоптионс .See CTaskDialog::SetOptions for a list of valid options.

CTaskDialogЗакрывается, когда пользователь выбирает общую кнопку, элемент управления Command Link или закрывает CTaskDialog .The CTaskDialog closes when the user selects a common button, a command link control, or closes the CTaskDialog. Возвращаемое значение — это идентификатор, который указывает, как пользователь закрыл диалоговое окно.The return value is the identifier that indicates how the user closed the dialog box.

ПримерExample

// 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:: ТаскдиалогкаллбаккCTaskDialog::TaskDialogCallback

Платформа вызывает этот метод в ответ на различные сообщения Windows.The framework calls this method in response to various Windows messages.

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

ПараметрыParameters

HWNDhwnd
окне Маркер m_hWnd структуры для CTaskDialog .[in] A handle to the m_hWnd structure for the CTaskDialog.

унотификатионuNotification
окне Код уведомления, указывающий созданное сообщение.[in] The notification code that specifies the generated message.

wParamwParam
окне Дополнительные сведения о сообщении.[in] More information about the message.

lParamlParam
окне Дополнительные сведения о сообщении.[in] More information about the message.

дврефдатаdwRefData
окне Указатель на CTaskDialog объект, к которому применяется сообщение обратного вызова.[in] A pointer to the CTaskDialog object that the callback message applies to.

Возвращаемое значениеReturn Value

Зависит от конкретного кода уведомления.Depends on the specific notification code. Дополнительные сведения см. в разделе "Примечания".See the Remarks section for more information.

КомментарииRemarks

Реализация по умолчанию TaskDialogCallback обрабатывает конкретное сообщение, а затем вызывает соответствующий метод в классе CTaskDialog.The default implementation of TaskDialogCallback handles the specific message and then calls the appropriate On method of the CTaskDialog Class. Например, в ответ на сообщение TDN_BUTTON_CLICKED TaskDialogCallback вызывается метод CTaskDialog:: онкоммандконтролкликк.For example, in response to the TDN_BUTTON_CLICKED message, TaskDialogCallback calls CTaskDialog::OnCommandControlClick.

Значения параметров wParam и lParam зависят от конкретного созданного сообщения.The values for wParam and lParam depend on the specific generated message. Одно или оба этих значения могут быть пустыми.It is possible for either or both of these values to be empty. В следующей таблице перечислены поддерживаемые уведомления по умолчанию и значения параметров wParam и lParam .The following table lists the default notifications that are supported and what the values of wParam and lParam represent. При переопределении этого метода в производном классе следует реализовать код обратного вызова для каждого сообщения в следующей таблице.If you override this method in a derived class, you should implement the callback code for each message in the following table.

Сообщение уведомленияNotification Message wParam ЗначенийwParam Value lParam ЗначенийlParam Value
TDN_CREATEDTDN_CREATED Не используется.Not used. Не используется.Not used.
TDN_NAVIGATEDTDN_NAVIGATED Не используется.Not used. Не используется.Not used.
TDN_BUTTON_CLICKEDTDN_BUTTON_CLICKED Идентификатор элемента управления кнопки команд.The command button control ID. Не используется.Not used.
TDN_HYPERLINK_CLICKEDTDN_HYPERLINK_CLICKED Не используется.Not used. Структура лпквстр , содержащая ссылку.A LPCWSTR structure that contains the link.
TDN_TIMERTDN_TIMER Время в миллисекундах с момента CTaskDialog создания или сброса таймера.Time in milliseconds since the CTaskDialog was created or the timer was reset. Не используется.Not used.
TDN_DESTROYEDTDN_DESTROYED Не используется.Not used. Не используется.Not used.
TDN_RADIO_BUTTON_CLICKEDTDN_RADIO_BUTTON_CLICKED Идентификатор переключателя.The radio button ID. Не используется.Not used.
TDN_DIALOG_CONSTRUCTEDTDN_DIALOG_CONSTRUCTED Не используется.Not used. Не используется.Not used.
TDN_VERIFICATION_CLICKEDTDN_VERIFICATION_CLICKED 1, если флажок установлен, в противном случае — 0.1 if the check box is checked, 0 if it is not. Не используется.Not used.
TDN_HELPTDN_HELP Не используется.Not used. Не используется.Not used.
TDN_EXPANDO_BUTTON_CLICKEDTDN_EXPANDO_BUTTON_CLICKED 0, если область расширения свернута; ненулевое значение, если текст расширения отображается.0 if the expansion area is collapsed; nonzero if the expansion text is displayed. Не используется.Not used.

См. также разделSee also

КлассыClasses
CObject, классCObject Class
Иерархическая диаграммаHierarchy Chart
Пошаговое руководство. Добавление CTaskDialog в приложениеWalkthrough: Adding a CTaskDialog to an Application