Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизТрей Найти похожие ветки
← →
LEXX_55 (2005-03-14 08:13) [0]Доброго времени суток, господа!
Гдето на сайте, не могу найти, было описание, как работать с треем. Пожалуйста помогите. Надо спрятать софтину в трей. Может кто-то сам сможет подсказать.
← →
LEXX_55 (2005-03-14 08:37) [1]Мастера, отзовитесь!!!
← →
SergP © (2005-03-14 09:14) [2]С помощью API Shell_NotifyIcon можно запуздырить иконку в трей, а также выпуздырить....
Вот кусок статьи с delphiword.narod.ruКак добавить иконку на Tray?
Для работы с SystemTray существует всего одна функция. Вот ее Си-прототип:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage, // message identifier
PNOTIFYICONDATA pnid // pointer to structure
);
Эта функция описана в заголовочном файле Win32-SDK "shellapi.h", включаемом в программу при включении "windows.h". Параметр dwMessage может принимать одно из трех значений: NIM_ADD, NIM_DELETE, NIM_MODIFY. Для добавления иконки он должен быть установлен в NIM_ADD. Параметр pnid имеет тип PNOTIFYDATA, который описан как:
typedef struct _NOTIFYICONDATA { // nid
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
char szTip[64];
} NOTIFYICONDATA, *PNOTIFYICONDATA;
Поля структуры NOTIFYICONDATA имеют следующий смысл:
cbSize
размер структуры, должен быть sizeof(NOTIFYICONDATA).
hWnd
дескриптор окна, которое будет получать события мыши над иконкой.
uID
уникальный идентификатор иконки. Идентификатор должен быть уникален в пределах окна - обработчика, передаваемого в hWnd.
uFlags
битовое поле, определяющее какое из следующих полей несет действительную информацию. Может быть одним из следующих значений: NIF_ICON, NIF_MESSAGE, NIF_TIP или их OR-комбинацией.
uCallbackMessage
сообщение, передаваемое окну - обработчику при событиях мыши. Желательно получать номер сообщения вызовом RegisterWindowMessage(), но допускаются и значения WM_USER+N, где N > 0.
hIcon
дескриптор иконки, помещаемой на Tray.
szTip
текст для ToolTip"а, если szTip[0] = 0x00, то ToolTip"а не будет.
Таким образом, для добавления иконки на Tray необходимо заполнить экземпляр структуры NOTIFYICONDATA и вызвать функцию Shell_NotifyIcon() с параметром NIM_ADD и указателем на заполненный экземпляр структуры.
При добавлении иконки необходимо заполнить поля cbSize, hWnd, uID, uFlags, uCallbackMessage, hIcon. Поле szTip можно оставить пустым, если вам не нужен ToolTip. Поле uFlags должно содержать как минимум NIF_MESSAGE | NIF_ICON.
А вообще если не хочешь париться со всем этим, то поищи лучше компонент CoolTrayIcon, поставь, и будет тебе счастье.
← →
Defunct © (2005-03-14 09:16) [3]Shell_NotifyIcon
← →
LEXX_55 (2005-03-14 09:18) [4]СПАСИБО!!!!
← →
Eraser © (2005-03-14 09:49) [5]Не морочь себе голову! Установи, например http://koroan.by.ru/delphi/components/COOLTRAY.ZIP или аналог из JEDI VCL.
А то я предвижу следующий твой вопрос, типа как отобразить балон хинт или анимацию....
← →
LEXX_55 (2005-03-14 09:53) [6]хотся разобраться
← →
Eraser © (2005-03-14 09:55) [7]Ну это тоже правильно, может напишешь компонент получше.
← →
panov © (2005-03-14 10:07) [8]Поле "Тема вопроса" не оформлено.
Вопрос не соответствует теме конференции.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c