我在 win32 应用程序中使用 TaskDialog API。我创建了一个带有“是/否”按钮的任务对话框,但我找不到任何将“否”按钮设置为默认值的选项。YES 按钮始终是默认设置。请让我知道是否有办法将 NO 按钮设置为默认值。我知道 TaskDialogIndirect 支持默认按钮选项,但它对我正在尝试做的事情来说有点过头了。我只想要一个简单的“是/否”对话框,默认为“否”按钮。我不想使用 MessageBox API,因为我不想要标题栏中的关闭按钮。
谢谢,
阿比奈
我在 win32 应用程序中使用 TaskDialog API。我创建了一个带有“是/否”按钮的任务对话框,但我找不到任何将“否”按钮设置为默认值的选项。YES 按钮始终是默认设置。请让我知道是否有办法将 NO 按钮设置为默认值。我知道 TaskDialogIndirect 支持默认按钮选项,但它对我正在尝试做的事情来说有点过头了。我只想要一个简单的“是/否”对话框,默认为“否”按钮。我不想使用 MessageBox API,因为我不想要标题栏中的关闭按钮。
谢谢,
阿比奈
鉴于:
TASKDIALOGCONFIG tc;
通过设置nDefaultButton
成员来设置默认按钮,例如:
tc.nDefaultButton = ...;
“这可能是数组中结构nButtonID
之一的成员中指定的任何值,或者是与成员中指定的按钮相对应的 ID 之一:TASKDIALOG_BUTTON
pButtons
dwCommonButtons
IDCANCEL
将取消按钮设为默认值。IDNO
将“否”按钮设为默认值。IDOK
将确定按钮设为默认值。IDRETRY
将“重试”按钮设为默认值。IDYES
将“是”按钮设为默认值。IDCLOSE
将关闭按钮设为默认按钮。”以上有点无耻地引用自 MSDN。
所以基本上,如果您使用标准的预定义按钮,请将字段设置为上述常量之一;如果您使用的是自定义按钮,请将其设置为您在指定按钮时使用的 ID。
除了大卫给出的答案之外,我还要加两分钱 - 如果您使用 MFC,您可以使用CTaskDialog类。