Как установить кнопку по умолчанию в TaskDialog? - PullRequest
3 голосов
/ 13 февраля 2012

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

Спасибо,

Abhinay

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Дано:

TASKDIALOGCONFIG tc;

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

tc.nDefaultButton = ...;

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

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

Бит выше бесстыдно указаниз MSDN .

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

0 голосов
/ 13 февраля 2012

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

...