delphi 有办法阻止TaskMessageDlg发出声音吗?

zkure5ic  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

我想显示一个带有信息图标的TaskMessageDlg,但我不想听到蜂鸣声。这可能吗?

35g0bw71

35g0bw711#

我想显示一个带有信息图标的TaskMessageDlg,但我不想听到蜂鸣声。
Windows Vista中引入的任务对话框的优点在于,它们在平台上提供了一个熟悉的、一致的和可访问的UX--如果开发人员正确使用它们的话。
这种UX的一部分是使用标准系统图标及其相关的声音,这些图标和声音可以由最终用户配置。
对于视力受损的用户来说,声音实际上可能很重要。如果一个特定的最终用户不喜欢这些声音,那么他可以在操作系统中禁用它们。
这可能吗?
TaskMessageDlg只是在VCL应用程序中显示任务对话框的一种方式,因此让我们将问题扩展到一般的任务对话框。
是的,这是可能的。而不是使用TD_INFORMATION_ICON标准图标,使用自定义图标。例如,您可以使用Print Screen和Microsoft Paint创建一个BMP文件,并在桌面上显示图标。或者,您可以使用LoadIconLoadIconWithScaleDown或(恐怖!)通过手动挖掘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;

字符串

相关问题