如何在TaskDialog中设置默认按钮?

时间:2012-02-13 16:15:46

标签: windows winapi visual-c++ comctl32

我在win32应用中使用TaskDialog API。我创建了一个带有YES / NO按钮的任务对话框,但我找不到任何选项来将No按钮设置为默认值。 YES按钮始终是默认值。如果有办法将NO按钮设置为默认值,请告诉我。我知道TaskDialogIndirect支持一个默认的按钮选项,但它对我正在尝试做的事情有点过分。我只想要一个简单的YES / NO对话框,默认为NO按钮。我不想使用MessageBox API,因为我不想在标题栏中使用关闭按钮。

谢谢,

阿希奈

2 个答案:

答案 0 :(得分:2)

假设:

TASKDIALOGCONFIG tc;

通过设置nDefaultButton成员设置默认按钮,例如:

tc.nDefaultButton = ...;

"这可能是nButtonID数组中某个TASKDIALOG_BUTTON结构的pButtons成员中指定的任何值,或者是与按钮对应的ID之一在dwCommonButtons成员中指定:

  • IDCANCEL将“取消”按钮设为默认值。
  • IDNO将“否”按钮设为默认值。
  • IDOK将“确定”按钮设为默认值。
  • IDRETRY将重试按钮设为默认值。
  • IDYES将“是”按钮设为默认值。
  • IDCLOSE将“关闭”按钮设为默认值。"

以上位shamelessly quoted from MSDN

基本上,如果您使用标准的预定义按钮,请将该字段设置为上述常量之一;如果您使用自定义按钮,请将其设置为指定按钮时使用的ID。

答案 1 :(得分:0)

除了大卫给出的答案之外,我还要加两分钱 - 如果您使用的是MFC,可以使用CTaskDialog课程。