RE: system tray

From
Alex Fedotov (2:5030/456)
To
Dmitry Petrov ()
Date
1996-05-31T11:31Z
Area
SU.WINDOWS.PROG
Hello Dmitry!

28 Apr 96, Dmitry Petrov writes to All:

 DP>    Расскажите, пожалуйста, как осуществить засовывание программы
 DP>    в system tray (для тех, кто не в курсе - это в вин95 область
 DP>    на таскбаре справа, где часы и т.п.). Надо, чтобы именно
 DP>    моя программа могла себя туда засунуть, типа как это делает
 DP>    системный агент. Если много объяснять, можно мылом.

Все что к этому относится обычно описывается в разделе Taskbar Notification
Area.
Вот пример добавления иконки (Programmers Guide to M$ Windows 95)

BOOL MyTaskBarAddIcon(HWND hwnd, UINT uID, HICON hIcon, LPSTR lpszTip)
{
  BOOL Res;
  NOTIFYICONDATA tnid;
  tnid.cbSize = sizeof(NOTIFYICONDATA);
  tnid.hWnd   = hwnd;
  tnid.uID    = uID;
  tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
  tnid.uCallBackMessage = MYWM_NOTIFYICON;
  tnid.hIcon = hIcon;
  if (lpszTip)
    lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip));
  else
    tnid.szTip[0] = '\0';

  Res = Shell_NotifyIcon(NIM_ADD, &tnid);

  if (hIcon)
   DestroyIcon(hIcon);

  return Res;
}

95 посылает окну hWnd сообщение MYWM_NOTIFYICON когда событие от мыши происходит над соответствующей иконкой. Параметры MYWM_NOTIFYICON:
lParam = Mouse message (WM_MOUSEMOVE ... etc.)
wParam = uID иконки заданный при добавлении.

Для функции Shell_NotifyIcon поддержаны команды:

NIM_ADD
NIM_DELETE
NIM_MODIFY

Всяческих благ,
Alex.

--- GoldED 2.40+
 * Origin: Vista BBS   (812) 264-65-87   Time: 00:00-08:00  (2:5030/456)