如何调整Windows图标叠加?

我在我的文件*.myfile叠加了一个图标,但叠加的大小是错误的。 当图标显示尺寸为16×16时,覆盖图标将覆盖该图标。

我怎样才能改变覆盖的大小? ( IShellIconOverlayIdentifier

左边是我的,右边是tortoisesvn

您无法更改叠加大小。 而是使用一个多分辨率的图标文件 ,其中所有必要的大小可用。

以一个很好的例子来看看TortoiseSVN的来源 。 他们只会使用一个图标文件,但如果您使用适当的绘图工具打开它,则会看到该文件包含不同的大小。

更新

如果你看第一种方法,你会得到下面的评论:

“Shell调用IShellIconOverlayIdentifier :: GetOverlayInfo来请求处理程序的图标叠加层的位置,图标叠加处理程序返回包含叠加图像的文件的名称及其在该文件中的索引,然后Shell将图标叠加层添加到系统图像列表“。

您可以在第129行看到它试图从注册表中找出所需文件的路径。 通过浏览代码,你可以在这里找到颠覆的图标 。 在第165行中,您可以看到它从注册表中获取文件名,并将其写回到其输出参数,也许是让Windows决定从文件中取出哪个大小的魔术标志是*pdwFlags = ISIOI_ICONFILE;