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

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

Спасибо,

Абхинай


person Abhinay K Reddyreddy    schedule 13.02.2012    source источник


Ответы (2)


Данный:

TASKDIALOGCONFIG tc;

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

tc.nDefaultButton = ...;

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

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

Приведенный выше бит бессовестно процитирован из MSDN. .

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

person David    schedule 13.02.2012

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

person Ajay    schedule 13.02.2012