Windows系统标准图标尺寸是否始终为正方形?(WinAPI/C++相关)
Windows系统标准图标尺寸是否始终为正方形?
核心结论
从Windows XP到Windows 11的所有版本中,系统定义的标准图标尺寸(含WinAPI返回值、应用规范要求)始终是正方形,不存在非正方形的标准尺寸场景。
细节解释
GetSystemMetrics调用的冗余性:GetSystemMetrics(SM_CXICON)(大图标宽度)和GetSystemMetrics(SM_CYICON)(大图标高度)返回的数值在所有Windows版本中完全相等,同理SM_CXSMICON/SM_CYSMICON(小图标尺寸)也是如此。从理论层面看,确实只需调用其中一个就能获取正方形的边长,另一个调用属于冗余。微软保留这两个参数是为了API的兼容性与未来扩展性(尽管从未启用过非正方形逻辑)。应用图标命名规范的依据:
Windows应用图标命名仅需单个尺寸值(如AppList.targetsize-16.png),正是因为系统默认图标为正方形,单个数值即可代表边长,无需额外标注宽高组合。高DPI场景下的图标加载逻辑:
在125%缩放等高DPI场景中,通过WinAPI查询到的图标宽度(如20)可直接确定加载20x20的正方形图标,无需再查询高度。系统在任何缩放比例下的标准图标尺寸都遵循正方形规则,这是Windows图标体系的基础设计规范。
内容的提问来源于stack exchange,提问作者RoboDude
相关产品推荐
相关产品推荐

