4 лампочки в одной иконке трея.Автор: Меньшиков Дмитрий.
Среда: Win32, тестировалось под Win98, Win2000 CTrayLights Описание: Данный класс представляет удобный способ работы с четырьмя лампочками в одной иконке трея. Это может быть полезно при отсутствии пользовательского интерфейса у программы со сложной внутренней структурой (разделяемые ресурсы, потоки, взаимодействие с другим ПО и т.д.), а также при отладке или исследовании. Также это довольно неплохой способ диагностики проблем в случае удаленного низкоквалифицированного пользователя. 4 отдельно управляемые лампочки по 16 цветов дают возможность видеть отражение внутренних процессов программы, причем нескольких параметров, экономя пространство в трее. Каждая лампочка может быть включена в любой из 16 основных цветов или прозрачный, или выключена. Цвет выключенных лампочек можно задать, по умолчанию - прозрачный. Использование: Здесь все просто. Объявляется экземпляр класса CTrayLights, затем вызовом StartTrayLights() иконка помещается в трей, затем вызовами FireLightOn/Off() меняются цвета нужных лампочек, затем вызовом EndTrayLights() работа завершается. Последний вызов может быть опущен, т.к. он происходит и из деструктора. Методы SetOffColor() и FireLightOff() добавлены для гибкости и удобства и могут не вызываться. Кроме того, можно использовать несколько иконок, наращивая число лампочек, для новых иконок достаточно задавать другие iconID. Как это работает: Из ICO файла стандартной иконки 16х16х16 выдрано примерно 300 байт, которые во время выполнения модифицируются, когда меняются значения цвета и прозрачности. Из этой цепочки байт создются иконки. При задании цвета сначала создается новая иконка, затем она заменяет ту, которая уже в трее, затем старая освобождается по сохраненному дескриптору. Работа с байтовой цепочкой неочевидна, но код получается компактным и быстрым.
DownloadsЗагрузить демонстрационный проект - 14 Kb
|