在我维护的软件中,我计划根据 Microsoft UI 指导方针的建议替换旧MessageBox的TaskDialog。
我需要解决的主要问题如下:
MessageBox(... ,MB_OK)可以通过按 Esc 键取消通过(因此仅包含一个 OK 按钮)调用的旧消息框。
但是TaskDialog只包含 OK 按钮的 a 不能通过按 Esc 键解除。这可能会对用户体验产生负面影响。
我尝试TaskDialogIndirect使用该pfCallback字段,但如果任务对话框中没有取消按钮,则回调函数甚至不会被调用。
有什么想法可以做什么使 Esc 关闭这样的任务对话框?
该TASKDIALOGCONFIG结构的 MSDN 文档说明了有关TDF_ALLOW_DIALOG_CANCELLATION标志(dwFlags成员)的以下内容:
指示即使在dwCommonButtons或pButtons成员中未指定取消按钮,也应该能够使用 Alt-F4、Escape 和标题栏的关闭按钮关闭对话框。
该标志还为对话框提供了一个系统菜单(Alt+Space),因此您也可以通过按 Alt+Space 和系统菜单的“关闭”项中的下划线字符来关闭它。