我想显示一个带有信息图标的TaskMessageDlg,但我不想听到蜂鸣声。这可能吗?
35g0bw711#
我想显示一个带有信息图标的TaskMessageDlg,但我不想听到蜂鸣声。Windows Vista中引入的任务对话框的优点在于,它们在平台上提供了一个熟悉的、一致的和可访问的UX--如果开发人员正确使用它们的话。这种UX的一部分是使用标准系统图标及其相关的声音,这些图标和声音可以由最终用户配置。对于视力受损的用户来说,声音实际上可能很重要。如果一个特定的最终用户不喜欢这些声音,那么他可以在操作系统中禁用它们。这可能吗?TaskMessageDlg只是在VCL应用程序中显示任务对话框的一种方式,因此让我们将问题扩展到一般的任务对话框。是的,这是可能的。而不是使用TD_INFORMATION_ICON标准图标,使用自定义图标。例如,您可以使用Print Screen和Microsoft Paint创建一个BMP文件,并在桌面上显示图标。或者,您可以使用LoadIcon,LoadIconWithScaleDown或(恐怖!)通过手动挖掘User32.dll来提取系统图标。作为概念验证:
TaskMessageDlg
TD_INFORMATION_ICON
LoadIcon
LoadIconWithScaleDown
User32.dll
with TTaskDialog.Create(nil) do try Title := 'Too many frogs have been created.'; CommonButtons := [tcbOk]; Flags := [tfUseHiconMain, tfAllowDialogCancellation]; CustomMainIcon.Handle := LoadIcon(0, IDI_INFORMATION); Execute; finally Free; end;
字符串
1条答案
按热度按时间35g0bw711#
我想显示一个带有信息图标的TaskMessageDlg,但我不想听到蜂鸣声。
Windows Vista中引入的任务对话框的优点在于,它们在平台上提供了一个熟悉的、一致的和可访问的UX--如果开发人员正确使用它们的话。
这种UX的一部分是使用标准系统图标及其相关的声音,这些图标和声音可以由最终用户配置。
对于视力受损的用户来说,声音实际上可能很重要。如果一个特定的最终用户不喜欢这些声音,那么他可以在操作系统中禁用它们。
这可能吗?
TaskMessageDlg
只是在VCL应用程序中显示任务对话框的一种方式,因此让我们将问题扩展到一般的任务对话框。是的,这是可能的。而不是使用
TD_INFORMATION_ICON
标准图标,使用自定义图标。例如,您可以使用Print Screen和Microsoft Paint创建一个BMP文件,并在桌面上显示图标。或者,您可以使用LoadIcon
,LoadIconWithScaleDown
或(恐怖!)通过手动挖掘User32.dll
来提取系统图标。作为概念验证:
字符串