Сообщений 7    Оценка 50        Оценить  
Система Orphus

Класс CNotifyIcon

Иконка в системном трее

Автор: Игорь Вартанов
Опубликовано: 30.04.2001
Исправлено: 15.04.2009
Версия текста: 1.0

Класс 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        Оценить