Как изменить размер Windows Icon Overlay? - PullRequest
6 голосов
/ 18 января 2012

Я наложил значок на мой файл, *.myfile, но размер наложения неверный. Когда значок отображается размером 16x16, наложение закрывает значок.

Как изменить размер наложения? (IShellIconOverlayIdentifier)

left is mine, right is tortoisesvn

1 Ответ

6 голосов
/ 18 января 2012

Вы не можете изменить размер наложения. Вместо этого используйте файл значков с несколькими разрешениями , где доступны все необходимые размеры.

Для хорошего примера взгляните на источник TortoiseSVN . Их будет использовать только один файл значков, но если вы откроете его с помощью подходящего инструмента рисования, вы увидите, что этот файл имеет разные размеры.

Обновление

Если вы посмотрите прямо на первый метод, вы получите следующий комментарий:

"Оболочка вызывает IShellIconOverlayIdentifier :: GetOverlayInfo, чтобы запросить расположение оверлея значка обработчика. Обработчик наложения значков возвращается имя файла, содержащего оверлейное изображение, и его индекс в этот файл. Затем командная консоль добавляет наложение значков в список образов системы. "

Вы можете увидеть в строке 129, что он пытается найти путь к нужному файлу из реестра. Просматривая код, вы можете найти значки в Subversion здесь . В строке 165 вы можете видеть, что он берет имя файла из реестра и записывает его обратно в свои параметры out, и, возможно, волшебный флаг, позволяющий окнам решить, какой размер следует извлечь из файла, равен *pdwFlags = ISIOI_ICONFILE;.

...