Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.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
C++ 256x256图标再次出现问题,或者如何通过IImageList获得真正的图标大小_C++_Windows 7_Windows Vista_Icons - Fatal编程技术网

C++ 256x256图标再次出现问题,或者如何通过IImageList获得真正的图标大小

C++ 256x256图标再次出现问题,或者如何通过IImageList获得真正的图标大小,c++,windows-7,windows-vista,icons,C++,Windows 7,Windows Vista,Icons,我通过调用以下命令获取系统映像列表: 我有一个256x256图像的列表,但没有256版本的小图标的大小也有256。我需要得到每个图标的真实大小。我怎样才能知道它的大小 我将使用以下方法获得图标的大小: IImageList::GetIconSize 嗯。现在我知道了IImageList::GetIconSize让所有图标的大小都等于256x256。还有一个问题,如何知道真实的图像大小 p、 对不起,我的英语不好。图像列表只能容纳相同大小的图像。如果您有一个256x256图像列表,它将始终返回

我通过调用以下命令获取系统映像列表:

我有一个256x256图像的列表,但没有256版本的小图标的大小也有256。我需要得到每个图标的真实大小。我怎样才能知道它的大小

我将使用以下方法获得图标的大小:

IImageList::GetIconSize

嗯。现在我知道了
IImageList::GetIconSize
让所有图标的大小都等于256x256。还有一个问题,如何知道真实的图像大小


p、 对不起,我的英语不好。

图像列表只能容纳相同大小的图像。如果您有一个256x256图像列表,它将始终返回256x256图像。要检索其他大小的图像,您需要访问Shell提供的其他大小的图像列表。

我知道,然后如何从图标句柄中了解最大图标大小?使用Shell图像列表的全部意义在于,您要求Shell提供所需大小的图像,外壳在内部做它必须做的事情,以提供这种大小的图像。如果图像的大小符合要求,则会按原样返回给您。否则,外壳必须从不同的大小调整图像大小,以适合您请求的大小。如果您想了解文件/文件夹本机提供的大小,那么通过Shell不是一种方法。如何要求Shell提供所需大小的图像?据我所知,SHGetImageList函数只支持返回五种大小(syssmall、small、large、extralge和jumbo)之一的列表。这些尺寸不在我的程序控制之下。是否可以要求shell提供图像列表返回图标,例如52x52像素?No.52x52是非标准图标大小。SHGetImageList()仅适用于操作系统本身使用的标准尺寸。如果需要特定大小的图标,则可能需要直接访问图标的原始数据,并根据需要重新采样像素。
IImageList::GetIconSize