按 Esc 键关闭 TaskDialog
Dismissing a TaskDialog by pressing Esc
在我维护的软件中,我计划按照 Microsoft UI 指南的建议将旧的 MessageBox
替换为 TaskDialog
。
我需要解决的主要问题如下:
通过 MessageBox(... ,MB_OK)
调用的旧消息框(因此仅包含一个“确定”按钮)可以通过按 Esc 键关闭。
但是仅包含“确定”按钮的 TaskDialog
无法通过按 Esc 键关闭。这可能会对用户体验产生负面影响。
我尝试使用 TaskDialogIndirect
使用 pfCallback
字段,但如果任务对话框中没有取消按钮,则甚至不会调用回调函数。
有什么想法可以让 Esc 关闭这样的任务对话框吗?
TASKDIALOGCONFIG
结构的 MSDN 文档对 TDF_ALLOW_DIALOG_CANCELLATION
标志(dwFlags
成员)的描述如下:
Indicates that the dialog should be able to be closed using Alt-F4, Escape, and the title bar's close button even if no cancel button is specified in either the dwCommonButtons or pButtons members.
这个标志还给对话框一个系统菜单(Alt+Space),所以你也可以通过按Alt+Space和系统菜单的[=19=中带下划线的字符来关闭它] 物品。
在我维护的软件中,我计划按照 Microsoft UI 指南的建议将旧的 MessageBox
替换为 TaskDialog
。
我需要解决的主要问题如下:
通过 MessageBox(... ,MB_OK)
调用的旧消息框(因此仅包含一个“确定”按钮)可以通过按 Esc 键关闭。
但是仅包含“确定”按钮的 TaskDialog
无法通过按 Esc 键关闭。这可能会对用户体验产生负面影响。
我尝试使用 TaskDialogIndirect
使用 pfCallback
字段,但如果任务对话框中没有取消按钮,则甚至不会调用回调函数。
有什么想法可以让 Esc 关闭这样的任务对话框吗?
TASKDIALOGCONFIG
结构的 MSDN 文档对 TDF_ALLOW_DIALOG_CANCELLATION
标志(dwFlags
成员)的描述如下:
Indicates that the dialog should be able to be closed using Alt-F4, Escape, and the title bar's close button even if no cancel button is specified in either the dwCommonButtons or pButtons members.
这个标志还给对话框一个系统菜单(Alt+Space),所以你也可以通过按Alt+Space和系统菜单的[=19=中带下划线的字符来关闭它] 物品。