Лучший размер значка для отображения в трее
Я работаю над программой 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