ファイルにアイコンオーバーレイを作成しました*.myfile
が、オーバーレイサイズが間違っています。アイコンのサイズが16x16の場合、オーバーレイがアイコンを覆います。
オーバーレイサイズを変更するにはどうすればよいですか?(IShellIconOverlayIdentifier
)
ファイルにアイコンオーバーレイを作成しました*.myfile
が、オーバーレイサイズが間違っています。アイコンのサイズが16x16の場合、オーバーレイがアイコンを覆います。
オーバーレイサイズを変更するにはどうすればよいですか?(IShellIconOverlayIdentifier
)
オーバーレイサイズは変更できません。代わりに、必要なすべてのサイズが利用可能な多重解像度アイコンファイルを使用してください。
良い例として、TortoiseSVNのソースを調べてください。使用されるアイコンファイルは1つだけですが、適切なペイントツールで開くと、このファイルにさまざまなサイズが含まれていることがわかります。
最初の方法を正しく見ると、次のコメントが表示されます。
「シェルはIShellIconOverlayIdentifier::GetOverlayInfoを呼び出して、ハンドラーのアイコンオーバーレイの場所を要求します。アイコンオーバーレイハンドラーは、オーバーレイイメージを含むファイルの名前と、そのファイル内のインデックスを返します。次に、シェルはアイコンオーバーレイをシステムに追加します。画像リスト。」
129行目で、レジストリから必要なファイルのパスを見つけようとしていることがわかります。コードを参照すると、ここでSubversionのアイコンを見つけることができます。165行目では、レジストリからファイル名を取得し、それをoutパラメータに書き戻し、ファイルから取得するサイズをWindowsに決定させるためのマジックフラグを表示していることがわかります*pdwFlags = ISIOI_ICONFILE;
。