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

问题描述:

我在一个win32应用程序中使用TaskDialog API。我用YES/NO按钮创建了一个任务对话框,但是我找不到任何选项将No按钮设置为默认值。 YES按钮始终是默认设置。请让我知道是否有办法将NO按钮设置为默认值。我知道TaskDialogIndirect支持一个默认的按钮选项,但它是我想要做的矫枉过正。我只想要一个简单的YES/NO对话框,并且默认为NO按钮。我不想使用MessageBox API,因为我不想在标题栏中关闭按钮。如何在TaskDialog中设置默认按钮?

感谢,

阿希奈

考虑:

tc.nDefaultButton = ...; 

“这可能是任何的:

TASKDIALOGCONFIG tc; 

通过设置nDefaultButton成员,如设置默认按钮在之一的nButtonID成员中指定的值层结构pButtons阵列中,或对应于dwCommonButtons构件中指定的按钮ID之一:

  • IDCANCEL使取消按钮的默认。
  • IDNO使No按钮成为默认值。
  • IDOK使OK按钮成为默认值。
  • IDRETRY将“重试”按钮设置为默认值。
  • IDYES使“是”按钮成为默认值。
  • IDCLOSE使关闭按钮默认的“

以上位shamelessly quoted from MSDN

所以基本上,如果你使用标准的预定义的按钮,将字段设置为上述参数之一。;如果您使用的是自定义按钮,请将其设置为您在指定按钮时使用的ID

除了David给出的答案,我还会添加我的两分钱 - 如果您使用MFC,则可以使用CTaskDialog类。