Сообщений 7 Оценка 50 Оценить |
Класс CNotifyIcon
Демонстрационная программа "Tray it"
Описание класса CNotifyIcon
Статья "CNotifyIcon и MFC"
Класс CNotifyIcon предназначен для облегчения работы с API области SystemArea (иначе называемой треем, что по утверждению Microsoft некорректно), представленным функцией Shell_NotifyIcon( ). Конструктор класса принимает набор атрибутов, определяющих свойства создаваемого объекта - иконку, текст всплывающей подсказки, контекстное меню, ассоциированное с иконкой и идентификатор уведомляющего сообщения, которое будет приходить окну-владельцу иконки в ответ на события, связанные с ней - перемещения мыши и нажатие ее клавиш.
В отличие от многих аналогичных классов, CNotifyIcon не зависит от MFC и может использоваться в любых программах под Windows.
Методы, предоставляемые классом, скрывают детали работы с API Shell_NotifyIcon( ) и принимают имя или идентификатор ресурса иконки, контекстного меню или всплывающей подсказки в качестве параметра, осуществляя самостоятельную загрузку и освобождение ресурсов и сохраняя текущее состояние объекта в его защищенных свойствах.
Кроме того, класс предоставляет встроенный обработчик нажатия правой кнопки мыши, выполняющий вызов контекстного меню, ассоциированного с объектом. Для более гибкой работы с контекстным меню встроенный обработчик осуществляет при необходимости вызов зарегистрированного обработчика (AdjustNIContextMenu), выполняющего модификацию контекстного меню.
Набор открытых свойств класса - адресов функций-обработчиков сообщений - позволяет пользователю назначить реализованные им методы в качестве обработчиков того или иного события, связанного с иконкой в SystemArea.
Программа-пример Tray_it демонстрирует применение класса CNotifyIcon, а также содержит пример расширения функциональных возможностей этого класса путём порождения от него собственного класса CNotifyIconEx.
Детальное описание класса содержится в CHM-файле, сопровождающем класс CNotifyIcon.
Автор приносит свою глубочайшую благодарность семье - жене и детям - так часто терпеливо засыпающим под клацанье клавиатуры и шум вращающегося кулера.
Автор выражает особую благодарность Александру Шаргину за ценные советы и пожелания, высказанных при тестировании класса, что, несомненно, отразилось на качестве кода.
Сообщений 7 Оценка 50 Оценить |