有没有办法阻止 TaskMessageDlg 发出声音?
Is there a way to stop TaskMessageDlg making sounds?
我想显示带有信息图标的 TaskMessageDlg,但我不想发出哔哔声。可能吗?
I want to display a TaskMessageDlg with Information icon but I don't want that beep.
实际上,您可能不知道。 Windows Vista 中引入的任务对话框的优点在于,如果开发人员正确使用它们,它们会在平台上提供熟悉、一致且易于访问的用户体验。
此用户体验的一部分是使用标准系统图标及其相关声音,最终用户可以对其进行配置。
对于视力受损的用户来说,声音实际上可能很重要。如果某个特定的最终用户不喜欢这些声音,那么他可以在操作系统中禁用它们。
Is it possible?
TaskMessageDlg
只是在 VCL 应用程序中显示任务对话框的一种方式,因此让我们将问题扩展到一般的任务对话框。
是的,这是有可能的。不使用 TD_INFORMATION_ICON
标准图标,而是使用自定义图标。例如,您可以使用 Print Screen 和 Microsoft Paint 创建一个 BMP 文件,其图标显示在您的桌面上。或者,您可以使用 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;
我想显示带有信息图标的 TaskMessageDlg,但我不想发出哔哔声。可能吗?
I want to display a TaskMessageDlg with Information icon but I don't want that beep.
实际上,您可能不知道。 Windows Vista 中引入的任务对话框的优点在于,如果开发人员正确使用它们,它们会在平台上提供熟悉、一致且易于访问的用户体验。
此用户体验的一部分是使用标准系统图标及其相关声音,最终用户可以对其进行配置。
对于视力受损的用户来说,声音实际上可能很重要。如果某个特定的最终用户不喜欢这些声音,那么他可以在操作系统中禁用它们。
Is it possible?
TaskMessageDlg
只是在 VCL 应用程序中显示任务对话框的一种方式,因此让我们将问题扩展到一般的任务对话框。
是的,这是有可能的。不使用 TD_INFORMATION_ICON
标准图标,而是使用自定义图标。例如,您可以使用 Print Screen 和 Microsoft Paint 创建一个 BMP 文件,其图标显示在您的桌面上。或者,您可以使用 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;