8

我找不到有关系统托盘图标的任何信息,它们应该采用什么尺寸才能获得最佳质量。我应该使用不止一种尺寸(16x16,32x32,64x64)吗?

我目前正在使用 16x16 .ICO 图标,它们看起来很乱。

4

2 回答 2

8

它们是小图标 ( 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上不存在,因此您需要实现一个后备例程。

于 2011-09-05T10:07:53.913 回答
0

我相信最好创建多种尺寸的图标并让 Windows 选择最好的。您永远无法确定系统托盘有多大,因为不同的用户可能有不同的设置。

这也可能是你的看起来扭曲的原因。假设您使用的是 16x16,但您已将 Windows 设置为以 18x18 显示它们。如果您没有提供 18x18 图标,它将被扭曲。

请参阅这个问题和拉里奥斯特曼的回答。

于 2011-09-05T10:35:31.220 回答