Лучший размер значка для отображения в трее

Я работаю над программой Delphi, которая отобразит значок в "трее". Я делаю это "трудным путем" (используя api Shell_NotifyIcon и т. д., а не компонент по причинам, выходящим за рамки этой точки). Он работает нормально, но иногда кажется, что значок немного "размыт" в некоторых системах. Теперь я экспериментировал с использованием 16x16 bmp, 32x32 и т. д. Похоже, что система масштабирует его до необходимого размера, но результаты различаются в зависимости от версии ОС (или, возможно, что-то и еще)....

есть ли у кого-нибудь из вас опыт о лучшем размере и глубине цвета BMP, который будет извлечен и отображен на лотке с помощью Shell_NotifyIcon из ListImage?

3 ответов


вы должны использовать 32bpp иконки с частичной прозрачностью для лучшего эффекта.

значок использует небольшой размер системы. Получите это, позвонив GetSystemMetrics передает SM_CXSMICON. Если вы используете масштабирование шрифта, это может быть, например, 20px, а не более распространенный 16px. Я никогда не находил документацию MS для этого факта, но вы можете легко проверить это для себя методом проб и ошибок. Не очень-то счастливое положение дел, но так оно и есть.

обновление: TOndrej указывает, что документы для LoadIconMetric дает молчаливое одобрение значка области уведомлений, являющегося небольшим размером значка. Я не понимаю, почему эта информация не включена в то, что для значков уведомлений.


вы, вероятно, должны включить значки 32x32 и 16x16 и загрузить соответствующий во время выполнения:

значки области уведомлений должны быть с высоким DPI. Заявка должен предоставить значок пикселя 16x16 и значок 32x32 в его файл ресурсов, а затем использовать LoadIconMetric обеспечить что правильное иконка загружается и масштабируется соответствующим образом.

(источник: MSDN)


один *.ico файл рекомендуется для значков приложений. *.ico файл может хранить различные размеры значков, таких как 16, 32, 256 и т. д. Вы можете конвертировать различные файлы изображений в формат ico онлайн здесь.

для значка в трее 16x16 или 32x32 ico подойдет.

официальное руководство msdn для значков:иконки в Windows