На этот раз правда, не про бесплатные наборы иконок, а про правильное их использование в программе.
Заказал у дизайн главной иконки иконки у фрилансера, $40, мне понравилось – я доволен, результат тут, спасибо маньяку за наводку. В процессе интеграции выяснил что, код который генерирует визард студии для работы с иконками – неправильный, и все эти годы у меня криво отображалась главная иконка. Раньше она и сама была кривая, так что на это внимание не обращал, а теперь стало явно видно. Что генерирует визард
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
…
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
Проблема в том что LoadIcon грузит иконку весьма паршиво. И гораздо лучше использовать LoadImage, вот так
SetIcon(HICON(LoadImage(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, 32, 32, 0)), TRUE); // Set big icon
SetIcon(HICON(LoadImage(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, 16, 16, 0)), FALSE); // Set small icon
Теперь и маленькая (таскбар, заголовок окна) и большая (алт-таб) иконка загрузятся корректно.
Но и это еще не все тонкости, грузить иконку для использования в трее надо так как написано выше, это понятно. Но если вы хотите корректно отображать иконку в трее для Windows 2000 – то необходимо делать две ветви кода, и для W2K грузить иконку с опцией LR_VGACOLOR
HICON(LoadImage(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, 16, 16, LR_VGACOLOR)
2000 винда умеет отображать в трее только 16 цветную иконку (ужас!), это нужно учесть и иметь формат с 4х битным цветом в вашем ico файле.
В общем намаялся я с этими иконками по полной программе, особенно учитывая, что я решил пользуясь случаем массово сменить иконки в меню\на тулбаре – потому что там тоже был ужас. Часть иконок заменил, часть взял старые но правильно их обработал, в результате программа стала смотреться намного приятнее, как по мне. А ведь страшно подумать, много лет продавалась с кривыми иконками, только потому что я 5 лет назад неумел\поленился разбираться с цветностью, форматами етс, а потом привык и как-то не замечал.
Отсюда мораль, если вы уже давно разрабатываете продукт – попробуйте абстрагироваться и посмотреть на него свежим взглядом…
За помощь и посвящения в тайны иконок, благодарю эксперта в этом вопросе и по совместительству автора приятной программы для работы с иконками.
Кстати, тут сегодня Агентство переводов Alconost Translations выложило в открытый доступ Follow-up templates (шаблоны писем потенциальным клиентам), можно брать, пользоваться и даже добавлять свой любимый text repository for instant inserting 🙂