Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取Windows系统托盘上图标的大小?_Windows_Winapi - Fatal编程技术网

如何获取Windows系统托盘上图标的大小?

如何获取Windows系统托盘上图标的大小?,windows,winapi,Windows,Winapi,在将图标显示在Windows系统托盘上之前,我希望自己加载适当大小的图标。如果我让Windows这样做(正如网络上许多页面上所建议的那样),它会使用错误的图标大小,并且生成的系统托盘图标看起来很糟糕。如果我能找到一种方法来指定要加载的图标大小,我可以在Photoshop中做得更好 加载特定图标大小的任务很容易,使用LoadIconWithScaleDown甚至LoadImage,问题是如何找到系统托盘中显示的图标的当前大小?通知区图标是方形图标,大小等于GetSystemMetrics(SM_C

在将图标显示在Windows系统托盘上之前,我希望自己加载适当大小的图标。如果我让Windows这样做(正如网络上许多页面上所建议的那样),它会使用错误的图标大小,并且生成的系统托盘图标看起来很糟糕。如果我能找到一种方法来指定要加载的图标大小,我可以在Photoshop中做得更好


加载特定图标大小的任务很容易,使用LoadIconWithScaleDown甚至LoadImage,问题是如何找到系统托盘中显示的图标的当前大小?

通知区图标是方形图标,大小等于
GetSystemMetrics(SM_CXSMICON)
。换句话说,它们是小图标


文档末尾的示例代码默认了这一点。

这里已经讨论过了:我不确定它是否有用though@Mataniko当前位置正如我所说,每个人都说,“让窗口选择”这在我的情况下不起作用。@chris:如果用户在不增加屏幕DPI的情况下更改窗口标题栏的大小,小图标的大小不会改变吗?在这种情况下,系统托盘大小将保持不变。@user843732,是的,我从另一个问题中看到它不正确。这只是一个猜测。我添加了我能想到的代码。我最好的猜测是使用上下文菜单检查图标的大小。它们似乎与不断变化的DPI设置最为一致。那你觉得呢?你是说载荷公度,对吗?我想这是唯一的办法。尽管再次强调,当操作系统进行扩展时,它并不总是看起来很好……不,我不是这个意思。该问题询问了图标的大小。该功能加载图标。操作系统只在你没有给它所需的大小时缩放图标。给它正确大小的图标,就不会有别名。虽然我链接到的文档使用LoadIconMetric,但这不是唯一的方法。这只是一个获得正确大小图标的方法的说明。我加入了这个链接,因为这是我见过的最接近官方确认的消息,通知图标是小图标。你可以用任何方式获取小图标。我知道,如果我知道将显示的图标的大小,我会在加载它的API中指定它。同样,找到将显示的正确大小似乎是一个问题。。。