![]() |
|
|
#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. Причина: Убрал мат |