Delphi TTrayIcon BalloonFlags 自定义图标

Delphi TTrayIcon BalloonFlags Customize icon

我想更改气球中的图标。

TrayIcon1.BalloonFlags := bfWarning;

该类型只能选择四种图标。 我想把你自己的图标。 帮帮我..

此控件是 Win32 API Shell_NotifyIcon 的包装器。因此,它主要向您反映了平台提供的功能。

相关结构 NOTIFYICONDATA 的文档中描述了可用的图标。选项是:

  • NIIF_NONE: No icon.
  • NIIF_INFO: An information icon.
  • NIIF_WARNING: A warning icon.
  • NIIF_ERROR: An error icon.
  • NIIF_USER: Windows XP SP2 and later. Windows XP: Use the icon identified in hIcon as the notification balloon's title icon. Windows Vista and later: Use the icon identified in hBalloonIcon as the notification balloon's title icon.

这意味着底层 API 支持用户图标。但是 Delphi 包装器不提供访问该功能的权限。

解决办法是直接调用Shell_NotifyIcon,指定NIIF_USER,把图标传到hBalloonIcon。或者在 hIcon 中,如果您的代码在 XP 上执行。