我找不到有关系统托盘图标的任何信息,它们应该采用什么尺寸才能获得最佳质量。我应该使用不止一种尺寸(16x16,32x32,64x64)吗?
我目前正在使用 16x16 .ICO 图标,它们看起来很乱。
我找不到有关系统托盘图标的任何信息,它们应该采用什么尺寸才能获得最佳质量。我应该使用不止一种尺寸(16x16,32x32,64x64)吗?
我目前正在使用 16x16 .ICO 图标,它们看起来很乱。
它们是小图标 ( ICON_SMALL
)。您可以通过以下方式了解尺寸:
GetSystemMetrics(SM_CXSMICON)
我认为假设它们是正方形是很安全的,但如果你是偏执狂,那么你总是可以询问SM_CYSMICON
.
在我的 Windows 7 机器上,它们的大小为 16 像素。但是,如果您使用字体缩放,那么它们会更大。对于 125% 的字体缩放(例如大字体),您需要一个 20px 的图标。
如果您手头没有 20px 版本,那么最好的方法是动态生成一个并将您的 16px 版本放在新的 20px 图标的中间。
更新
的文档NOTIFYICONDATA
建议使用与我上面概述的方法等效的LoadIconMetric
传递。LIM_SMALL
但是,该NOTIFYICONDATA
主题还说要使用包含仅 16px 和 32px 版本的图标的图标资源。这个建议是虚假的,因为任何人都可以自己看到,大字体下的通知图标是 20 像素图标,并且LoadIconMetric
比例从 32 到 20。我建议提供 16、20、24、32 像素的版本。
在 XPLoadIconMetric
上不存在,因此您需要实现一个后备例程。
我相信最好创建多种尺寸的图标并让 Windows 选择最好的。您永远无法确定系统托盘有多大,因为不同的用户可能有不同的设置。
这也可能是你的看起来扭曲的原因。假设您使用的是 16x16,但您已将 Windows 设置为以 18x18 显示它们。如果您没有提供 18x18 图标,它将被扭曲。
请参阅这个问题和拉里奥斯特曼的回答。