Работа с треем.Нужна помощь...

  • Автор темы Dronn
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dronn

#1
Здравствуйте всем!Помогите пожалуйста.Вот моя проблемма : свернул окно в трей...А дальше вынуть немогу.Скажите плз какой нужно эвент использовать(в MFC) или сообщение его обработчик и как им пользоватся (без MFC).Заранее спасибо!
Да и ещё.Функцию вытягивания иконки и восстановления окна я то знаю...вот кстати если кому интересно:[codebox]BOOL UnflipFromTray(HWND hWnd, BOOL bRestore)
{
//идентифицируем иконку ужо созданную
NOTIFYICONDATA nid; memset(&nid, 0, sizeof(nid)); nid.cbSize = sizeof(nid);
nid.hWnd = hWnd;
nid.uID = 1234;

// удаляемс
BOOL ok = Shell_NotifyIcon(NIM_DELETE, &nid);

if(!bRestore) return ok;

// восстанавливаем окно
ShowWindow(hWnd, SW_SHOW);
ShowWindow(hWnd, SW_RESTORE);

return ok;
}[/codebox]
Но незнаю, в каком эвенте её использовать если программа УЖЕ свернута.Да и ещё дополнение...Вот код сворачивания окна в трей:[codebox]
BOOL FlipToTray(HWND hWnd,HICON hIcon,BOOL Minimize)
{
NOTIFYICONDATA nid; memset(&nid, 0, sizeof(nid)); nid.cbSize = sizeof(nid);
nid.hWnd = m_hWnd;
nid.uID = 1234;
nid.uCallbackMessage = WM_APP+1234;
nid.hIcon = m_hIcon;

nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;

// показываем ее
BOOL ok = Shell_NotifyIcon(NIM_ADD, &nid);

ShowWindow(SW_MINIMIZE);
ShowWindow(SW_HIDE);
}[/codebox]

[
 
D

Dronn

#2
Ладно уже сам разобрался...Стоило только в главный SWITCH (MESSAGE) добавить вот это:[codebox]case WM_ShellNote:
switch((UINT)lParam)
{
case WM_RBUTTONDOWN : ShowPopupMenu(hWnd,hInst,IDC_TRAY);
}[/codebox]
И все стало работать!Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.