Большая иконка приложения (VS 2013)
От: Went  
Дата: 02.06.20 14:02
Оценка:
Здравствуйте. Делаю большую (больше 32х32) иконку для своего приложения. Добавляю в ресурсы приложения, все работает. Но иконка отображается маленькая, даже когда включены огромные значки.
То есть если взять сам ico-файл, то на огромных значках иконка будет во весь размер, а у exe-шника с этой же иконкой в ресурсах, будет обычная маленькая иконка в большом белом квадрате. Что я делаю неверно?
Re: Большая иконка приложения (VS 2013)
От: qaz77  
Дата: 02.06.20 19:40
Оценка: 16 (1)
Здравствуйте, Went, Вы писали:

W>Здравствуйте. Делаю большую (больше 32х32) иконку для своего приложения. Добавляю в ресурсы приложения, все работает. Но иконка отображается маленькая, даже когда включены огромные значки.

W>То есть если взять сам ico-файл, то на огромных значках иконка будет во весь размер, а у exe-шника с этой же иконкой в ресурсах, будет обычная маленькая иконка в большом белом квадрате. Что я делаю неверно?

Для того, чтобы иконка нормально отображалась в проводнике, на рабочем столе и в панели задач, требуется наличие стандартного набора размеров изображений:
16x16, 20x20, 24x24, 32x32, 40x40, 48x48, 64x64 и т.д. для больших DPI экрана.

Если ico-файл каких-то стандартных размеров не содержит или, тем более, содержит одно большое изображение нестандартного размера, то в некоторых режимах происходит растяжение/сжатие или отображения в виде миниатюры (в белом квадрате).

Для тестов хорошо сделать иконку с разными надписями на каждом изображении: "16", "20", "24", "32", ...
Это сразу позволяет понять, где какой размер выбирается Windows для отображения.
Где-то у меня была такая иконка, но сходу не нашел.
В редакторе ресурсов делается за 5 минут.

P.S. Есть удобный редактор иконок IconFx, после него студийным не хочется пользоваться.
Re[2]: Большая иконка приложения (VS 2013)
От: Went  
Дата: 03.06.20 17:11
Оценка:
Здравствуйте, qaz77.
Понимаете, сам ico-файл (main.ico, назовем) отображается корректно на больших иконках. А вот у экзешника, которому эту иконку назначили (main.exe) на больших иконках рисуется маленькая, 32х32 в большом белом квадрате. Иконку делаю так — рисую большую (128х128) png, загружаю ее в AWIconsPro и делаю "создать стандартные размеры из имеющихся" и получаю ico с кучей размеров и глубин цвета.
Re[3]: Большая иконка приложения (VS 2013)
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 03.06.20 17:30
Оценка:
Здравствуйте, Went, Вы писали:

W>Понимаете, сам ico-файл (main.ico, назовем) отображается корректно на больших иконках. А вот у экзешника, которому эту иконку назначили (main.exe) на больших иконках рисуется маленькая, 32х32 в большом белом квадрате. Иконку делаю так — рисую большую (128х128) png, загружаю ее в AWIconsPro и делаю "создать стандартные размеры из имеющихся" и получаю ico с кучей размеров и глубин цвета.


У меня в памяти отложилось, что, вроде бы, порядок этих изображений внутри ICO-файла играет роль. К сожалению, не помню подробностей, но стоит погуглить на эту тему. А для начала поэкспериментировать, расположив их по возрастанию и по убыванию размеров — проверить, поменяется ли поведение.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: Большая иконка приложения (VS 2013)
От: qaz77  
Дата: 04.06.20 07:09
Оценка:
Здравствуйте, Went, Вы писали:

W>Понимаете, сам ico-файл (main.ico, назовем) отображается корректно на больших иконках. А вот у экзешника, которому эту иконку назначили (main.exe) на больших иконках рисуется маленькая, 32х32 в большом белом квадрате. Иконку делаю так — рисую большую (128х128) png, загружаю ее в AWIconsPro и делаю "создать стандартные размеры из имеющихся" и получаю ico с кучей размеров и глубин цвета.


А id в ресурсах приложения у иконки какой?

У меня везде 101 используется и отображается нормально.
В официальной доке MS не знаю, где это описано, но так создает resource.h студийный визард.

Дополнение. Похоже, что 101 не какое-то специальное значение, а просто минимальный ID ресурса в проектах студии.
Для иконки приложения важно иметь минимальный ID ресурса среди других иконок.
При этом не рекомендуется использовать ID=1, т.к. при указании иконки в виде "файл,-ID", значение -1 имеет специальное значение.
Отредактировано 04.06.2020 8:16 qaz77 . Предыдущая версия .
Re[4]: Большая иконка приложения (VS 2013)
От: Went  
Дата: 04.06.20 10:34
Оценка:
Здравствуйте, qaz77, Вы писали:
Q>А id в ресурсах приложения у иконки какой?
101 Собственно, это единственный ресурс во всем приложении
Re[4]: Большая иконка приложения (VS 2013)
От: Went  
Дата: 04.06.20 10:42
Оценка:
Здравствуйте, CaptainFlint, Вы писали:
CF>У меня в памяти отложилось, что, вроде бы, порядок этих изображений внутри ICO-файла играет роль. К сожалению, не помню подробностей, но стоит погуглить на эту тему. А для начала поэкспериментировать, расположив их по возрастанию и по убыванию размеров — проверить, поменяется ли поведение.
Студия как-то не дает менять имеющийся порядок... Но, в любом случае, я вообще убил все иконки кроме больших размеров — иконка все равно рисуется маленькая в большом белом квадрате. Рядом лежит DLL — у нее громадная иконка на весь квадрат.
Re[5]: Большая иконка приложения (VS 2013)
От: qaz77  
Дата: 04.06.20 10:48
Оценка: +3
Здравствуйте, Went, Вы писали:
W>101 Собственно, это единственный ресурс во всем приложении

Еще вспомнил, такой эффект бывает при разработке.

Запускаем exe со старой/маленькой иконкой и Windows ее кэширует (в разрезе имени exe?).
Потом заменяем иконку на большую и красивую, при запуске exe продолжает отображаться старая.

Надо в AppData снести файл IconCache.db и перезагрузиться.
Re[6]: Большая иконка приложения (VS 2013)
От: Conductor СССР  
Дата: 18.06.20 04:29
Оценка:
Здравствуйте, qaz77, Вы писали:

Q>Надо в AppData снести файл IconCache.db и перезагрузиться.


Достаточно перезапустить проводник (прибить и запустить заново).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.