我找不到有关系统托盘图标的任何信息,它们应该具有多大的尺寸以获得最佳质量。我应该使用多种尺寸(16x16,32x32,64x64)吗?
我目前正在使用16x16 .ICO图标,但它们看起来很糟糕。
答案 0 :(得分:8)
它们是小图标(ICON_SMALL
)。您可以致电:
GetSystemMetrics(SM_CXSMICON)
我认为假设它们是正方形是相当安全的,但如果你是偏执狂,那么你总是可以询问SM_CYSMICON
。
在我的Windows 7机器上,它们的大小是16px。但是如果你使用字体缩放,那么它们会更大。对于125%的字体缩放(例如大字体),您需要一个20px的图标。
如果您手头没有20px版本,那么最好的方法是动态生成一个并将16px版本放在新的20px图标的中间。
<强>更新强>
NOTIFYICONDATA
的文档建议使用LoadIconMetric
传递LIM_SMALL
,这相当于我在上面概述的方法。
但是,NOTIFYICONDATA
主题还说要使用仅包含16px和32px版本图标的图标资源。这个建议是假的,因为,正如任何人都可以看到的那样,大字体下的通知图标是20px图标,LoadIconMetric
将具有32到20的比例。我建议提供16,20,24,32px版本。
在XP上LoadIconMetric
不存在,因此您需要实施回退例程。
答案 1 :(得分:0)
我认为最好创建多种尺寸的图标,让Windows选择最好的图标。您永远无法确定系统托盘有多大,因为不同的用户可能有不同的设置。
这也可能是你看起来扭曲的原因。假设您使用的是16x16,但是您已将Windows设置为18x18。如果您没有提供18x18图标,则会失真。
见this question和Larry Osterman的回答。