FAQ по C/C++/Visual C++
Работа с сетью Как добавить свою программу в трей |
Составители: SUnteXx, Leprecon |
Как добавить свою программу в трей | |||
#define MYWM_NOTIFYICON (WM_USER + 1) // Описываем сообщение, которое будет посылаться при взаимодействии юзера с нашей иконкой в систрееСоздаем (глобальную) функцию BOOL TrayMessage (HWND hDlg, DWORD dwMessage, UINT uID, HICON hIcon, PSTR pszTip) // systray icon { BOOL res; NOTIFYICONDATA tnd; tnd.cbSize = sizeof(NOTIFYICONDATA); tnd.hWnd = hDlg; tnd.uID = uID; tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; tnd.uCallbackMessage = MYWM_NOTIFYICON; // Сообщение, которое пошлется при всяких там кликах на иконке... tnd.hIcon = hIcon; if (pszTip) { lstrcpyn(tnd.szTip, pszTip, sizeof(tnd.szTip)); } else { tnd.szTip[0] = '\0'; } res = Shell_NotifyIcon(dwMessage, &tnd); return res; }А потом по ходу дела (то есть проги) делаем следующее: Добавляем иконку: TrayMessage(hWnd, NIM_ADD, 0, hIcon, szText);Изменяем иконку: TrayMessage(hWnd, NIM_MODIFY, 0, hIcon, szText);Удаляем иконку: TrayMessage(hWnd, NIM_DELETE, 0, 0, 0);Параметры функции TrayMessage: HWND hWnd; // указатель на окно HICON hIcon; // указатель на иконку char *szText; // указатель на текст для подсказкиТеперь ловим сообщение MYWM_NOTIFYICON, где lParam будет событием (WM_LBUTTONDOWN, к примеру...) |
|||
|
FAQ составлен по материалам Форума на Исходниках.Ру. Copyright © 2002 by Sources.ru. All rights reserved. |