Как установить кнопку по умолчанию в TaskDialog?

Я использую TaskDialog API в приложении Win32. Я создал диалог задач с кнопками YES/NO, но я не могу найти никакой опции, чтобы установить кнопку Нет по умолчанию. Кнопка YES всегда используется по умолчанию. Пожалуйста, дайте мне знать, если есть способ установить кнопку NO по умолчанию. Я знаю, что TaskDialogIndirect поддерживает опцию кнопки по умолчанию, но это излишество для того, что я пытаюсь сделать. Я просто хочу простой диалог YES/NO с кнопкой NO по умолчанию. Я не хотел использовать API MessageBox, потому что я не хочу кнопку закрытия в заголовке.

Спасибо,

Абхинай

2 ответа

Дано:

TASKDIALOGCONFIG tc;

Установите кнопку по умолчанию, установив nDefaultButton член, например:

tc.nDefaultButton = ...;

"Это может быть любое из значений, указанных в nButtonID члены одного из TASKDIALOG_BUTTON структуры в pButtons массив или один из идентификаторов, соответствующих кнопкам, указанным в dwCommonButtons член:

  • IDCANCEL Сделайте кнопку Отмена по умолчанию.
  • IDNO Сделайте кнопку Нет кнопкой по умолчанию.
  • IDOK Сделайте кнопку ОК по умолчанию.
  • IDRETRY Сделайте кнопку Повторить по умолчанию.
  • IDYES Сделайте кнопку Да по умолчанию.
  • IDCLOSE Сделать кнопку "Закрыть" по умолчанию. "

Вышеуказанный бит бесстыдно цитируется из MSDN.

Таким образом, в основном, если вы используете стандартные предопределенные кнопки, установите для поля одну из вышеуказанных констант; если вы используете пользовательскую кнопку, установите для нее идентификатор, который вы используете при указании кнопки.

В дополнение к ответу Дэвида я бы добавил свои два цента. Если вы используете MFC, вы можете использовать класс CTaskDialog.

Другие вопросы по тегам