Visual C++ 2010 Express, значок исполняемого файла не заменяется для всех представлений проводника

У меня есть простое приложение C++/CLI Windows Forms в Visual C++ 2010 Express. Решил заменить там иконку EXE файла.

Я удалил оригинальный app.ico из проекта, поместил другой файл ico (128 * 128, если это имеет значение) в каталог проекта.

Затем я открыл файл app.rc и заменил там имя значка: с app.ico на Vocabulary2.ico (это имя файла ico)

Вот код из файла app.rc, который я изменил:

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon placed first or with lowest ID value becomes application icon
LANGUAGE 25, 1
1           ICON         "Vocabulary2.ico"  //changed the value in quotes

Затем я очистил и пересобрал решение, и у меня возникла следующая проблема со значком приложения: правильный значок отображается, когда проводник Windows находится в режиме «Содержимое\Подробности\Список\Мелкие значки». Но если я переключаюсь в любой другой режим (Средний, (Дополнительно) Крупные значки, Плитки) - я вижу значок приложения по умолчанию.

Это не какой-то кэш проводника Windows - я скопировал файл на другой компьютер с Windows 7 и получил ту же проблему.

Как я могу установить правильный значок для всех представлений?

Вот ссылка на значок, который я использовал: http://findicons.com/icon/download/94320/applications_office/128/ico?id=275134

Вот скриншот проблемы: скриншот - разные значки для плиток и просмотра контента


person Ubeogesh    schedule 25.05.2013    source источник


Ответы (1)


ICO-файл Windows может содержать несколько значков разных размеров и цветовых форматов. Эта функция — то, чем вам нужно воспользоваться здесь. Windows использует эти разные значки в разных местах пользовательского интерфейса, в зависимости от требуемого размера и формата цвета, поддерживаемого машиной. Если точное совпадение не найдено, он пытается масштабировать один из существующих значков, но это часто приводит к уродливым результатам (или может вообще не предприниматься попытки, как в вашем случае).

Прямо сейчас у вас есть только один значок в файле ICO: значок размером 128x128 пикселей, использующий 32-битные цвета. Этого недостаточно, чтобы удовлетворить все основные требуемые размеры. На самом деле, я не думаю, что Windows даже где-либо использует 128-пиксельные значки. Основные размеры, которые вам нужны, — 16, 32, 48 и 256 пикселей. При желании вы можете включить значок размером 24x24 пикселя, который, как я полагаю, используется для представления «Содержание» и в некоторых макетах меню «Пуск». Итак, резюмируя:

  • 16 x 16 пикселей (например, режимы просмотра "Мелкие значки" и "Подробности")
  • [необязательно] 24 x 24 пикселя (например, вид "Содержание")
  • 32x32 пикселя (например, вид «Средние значки»)
  • 48x48 пикселей (например, вид «Плитки»)
  • 256x256 пикселей (например, вид «Очень большие значки»)

Если вы хотите поддерживать более старые компьютеры, которые могут не поддерживать 32-битные цветные значки, вам также необходимо включить значки всех вышеуказанных размеров в более низкие цветовые форматы. Вы можете включить все цветовые форматы, но я считаю, что достаточно просто иметь набор 32-битных и 8-битных цветных значков всех необходимых размеров.

Вам понадобится хороший создатель значков, чтобы справиться с этим за вас, поскольку Microsoft Paint не поддерживает создание файлов ICO, содержащих несколько значков. Раньше я рекомендовал IcoFX, но это больше не бесплатно. Вы можете загрузить более старую версию (1.6.4) в различных местах в Интернете, но я позволю вам использовать Google для этого самостоятельно. Если у вас уже есть один или другой, Photoshop и GIMP поддерживают создание файлов ICO. Есть много других вариантов онлайн; например вот этот (хотя я его не пробовал).

Полные версии Visual Studio поставляются с редактором значков, но я бы не стал его использовать. Он по-прежнему (по крайней мере, с VS 2010) не поддерживает должным образом 32-битные цветные значки. Альфа-каналы все облажались.

Вы можете либо настроить редактор значков вверх/вниз для создания всех необходимых размеров, либо использовать его для рисования других размеров вручную. Рисование от руки (или, по крайней мере, манипулирование руками) часто дает лучшие результаты. Уменьшение большого значка часто делает его неузнаваемым. Масштабирование меньшего значка часто приводит к неровностям и другим уродливым визуальным артефактам.

Поскольку вы используете значок, нарисованный кем-то другим, вы можете просто загрузить другие размеры с сайта . исходная ссылка (перейдите на вкладку "Другие размеры"). Я считаю, что сайт FindIcons разработан таким образом, что вы должны загружать каждый размер отдельно в виде отдельного файла ICO, а затем использовать редактор значков, чтобы скопировать и вставить каждый из них в новый файл ICO.

Дальнейшее чтение:

  • Значки из руководства по пользовательскому интерфейсу Windows Aero.
  • Создание значков Windows XP (старая статья, которая может быть уже не совсем актуальна) , но все же содержит много полезной информации)
person Cody Gray    schedule 26.05.2013