вторник, 26 мая 2009 г.

Иконка в трее

Приятной особенность приложения может служить иконка в трее. Баловаться не стоит, снабжая каждый программный продукт подобной. А вот если предполагается длительное время работы, то хорошим тоном будет являться сворачивать программу не на панель задач, где места зачастую нет, а в область трея. Не только удобно, но и определённый запоминающийся образ появится. А если ещё и меню прикрутить... сказка!
На winAPI делается примерно так:

NOTIFYICONDATA nid;

memset(&nid, 0, sizeof(nid));
nid.cbSize = sizeof(nid);
nid.hWnd = hwnd; // хэндл имеющегося окна
nid.uID = ICON_ID; // номер иконки (если у приложения их несколько, то разные номера)
static HINSTANCE hInstance = GetModuleHandle(NULL);
nid.hIcon = ::LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
lstrcpyn(nid.szTip, "Название программы", sizeof(nid.szTip)/sizeof(nid.szTip[0]));
nid.uCallbackMessage = WM_ShellNote; //ранее в define описан макрос-номер
nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
BOOL bSuccess = Shell_NotifyIcon(NIM_ADD, &nid);

Комментариев нет:

Отправить комментарий