Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Минимизация в трей


Автор: Атос 25.9.2004, 19:39
Такие приложения как Kaspersky Antivirus 5, при закрытии окна свертываются (анимация минимизации) в трей бар, что на мой взгляд очень наглядно показывает, что приложение не закрылось, а осталось в памяти и доступен через иконку в статус-зоне.

Вопрос: есть ли средства операционки для выполнения данной формы минимизации - или надо ручками, как я наизобретал:

Код

switch (message)
{
case WM_CLOSE:
 WINDOWPLACEMENT wp;
 SetWindowLong(hWnd, GWL_EXSTYLE,
  (GetWindowLong(hWnd, GWL_EXSTYLE) & !WS_EX_APPWINDOW) | WS_EX_TOOLWINDOW);

 GetWindowPlacement(hWnd, &wp);
 wp.ptMinPosition.x = 1023; // по идее надо узнать конечно где сейчас таскбар и конкретно статус зона
 wp.ptMinPosition.y = 767; // -- " --
 wp.flags = WPF_SETMINPOSITION;
 wp.showCmd = SW_SHOWNA;
 SetWindowPlacement(hWnd, &wp);

 ShowWindow(hWnd, SW_MINIMIZE);

 // todo: убрать апп-кнопку на таксбаре - ну это понятно как...

 return 0;


Автор: Coocky 25.9.2004, 21:00
Абсолютно правильно,нужно обработать сообщение о закрытие окна,и в обработчике спрятать его в Трэй.Ничего ты не изобрел,а просто правильно обработал.
Код твой,правда, не разбирал smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)