Лучший размер значка для отображения в лотке
Я работаю над программой Delphi, которая отобразит значок на "лотке". Я делаю это "трудным путем" (используя Shell_NotifyIcon api и т.д., А не компонент, по причинам, не входящим в эту точку). Он отлично работает, но иногда кажется, что в некоторых системах значок немного "размыт". Теперь я экспериментировал с использованием 16x16 бит, 32x32 и т.д. Кажется, что система масштабирует его до нужного размера, но результаты различаются в зависимости от версии ОС (или, возможно, что-то еще)....
Есть ли у вас какой-либо опыт по наилучшему размеру и глубине цвета BMP, который нужно извлечь и отобразить на лотке с помощью Shell_NotifyIcon из ListImage?
Ответы
Ответ 1
Вы должны использовать 32bpp-иконки с частичной прозрачностью для лучшего эффекта.
Значок использует небольшой размер системы. Получите это, позвонив GetSystemMetrics
, переходя SM_CXSMICON
. Если вы используете масштабирование шрифта, это может быть, например, 20px, а не более общий 16px. Я никогда не нашел документацию по MS для этого факта, но вы можете легко убедиться в этом самим путем проб и ошибок. Не очень счастливое положение дел, но это то, что есть.
Обновление: Тондрей указывает, что документы для LoadIconMetric
дают молчаливое одобрение значка области уведомлений, являющегося небольшим размером значка. Я не понимаю, почему эта информация не включена в это для значков уведомлений.
Ответ 2
Вероятно, вы должны включить и значки 32x32 и 16x16, и загрузить их во время выполнения:
Значки области уведомлений должны быть осведомлены о высоком уровне DPI. Приложение должен содержать значок 16x16 пикселей и значок 32x32 в его файл ресурсов, а затем используйте LoadIconMetric, чтобы убедиться в правильности значок загружается и масштабируется соответствующим образом.
(источник: MSDN)
Ответ 3
Для значков приложений рекомендуется использовать один *.ico
файл. *.ico
файл может хранить различные размеры значков, таких как 16, 32, 256 и т.д. Здесь вы можете конвертировать различные файлы изображений в формат ico в формате здесь.
Для значка в лотке 16x16 или 32x32 ico будет соответствовать.
Официальное руководство msdn для значков: значки в Windows