2

在我维护的软件中,我计划在很久以前就按照 Microsoft UI 指南的建议替换旧MessageBox的。TaskDialog

我需要解决的主要问题如下:

通过按 Esc 键调用的旧消息框MessageBox(... ,MB_OK)(因此只包含一个 OK 按钮)可以关闭。

但是TaskDialog不能通过按 Esc 来关闭仅包含 OK 按钮的按钮。这可能会对用户体验产生负面影响。

我尝试TaskDialogIndirect使用该pfCallback字段,但如果任务对话框中没有取消按钮,则回调函数甚至不会被调用。

任何想法可以做什么,以便 Esc 将关闭这样的任务对话框?

4

1 回答 1

5

该结构的 MSDN 文档对标志(成员)进行TASKDIALOGCONFIG了以下说明:TDF_ALLOW_DIALOG_CANCELLATIONdwFlags

指示即使在dwCommonButtonspButtons成员中未指定取消按钮,也应该能够使用 Alt-F4、Escape 和标题栏的关闭按钮关闭对话框。

该标志还为对话框提供了一个系统菜单(Alt+Space),因此您也可以通过按 Alt+Space 和系统菜单的“关闭”项中的下划线字符来关闭它。

于 2019-06-26T21:27:50.000 回答