![]() |
|
#9
|
||||
|
||||
![]() Можно сделать намного легче. Прикрепил юнит, пользуйтесь на здоровье.
Код:
uses Tray; ... var TaskBarCreated : Boolean; const WM_TRAY = WM_USER + 1; ... function WindowProc(Wnd: HWND; Msg, wParam, lParam: Integer): Integer; stdcall; begin Result := 0; case Msg of WM_SYSCOMMAND: begin case LoWord(wParam) of // При сворачивании программы SC_MINIMIZE: begin TaskBarCreated := TaskBarAddIcon(Wnd, ID_ICON, WC.hIcon, WM_TRAY, 'Hello!'); ShowWindow(Wnd, SW_MINIMIZE); ShowWindow(Wnd, SW_HIDE); end; // При восстановлении окна SC_RESTORE: begin if TaskBarCreated then begin TaskBarDeleteIcon(Wnd, ID_ICON); TaskBarCreated := False; ShowWindow(Wnd, SW_SHOWNORMAL) end end; end end; WM_TRAY: begin case LoWord(lParam) of WM_LBUTTONDBLCLK: begin SetForegroundWindow(Wnd); SendMessage(Wnd, WM_SYSCOMMAND, SC_RESTORE, 0); end; end end; WM_DESTROY: begin if TaskBarCreated then TaskBarDeleteIcon(Wnd, ID_ICON); PostQuitMessage(0); Exit end end; Result := DefWindowProc(Wnd, Msg, wParam, lParam) end; Последний раз редактировалось M.A.D.M.A.N., 18.03.2013 в 15:46. Причина: Убрал мат |