Идёт загрузка страницы...

htp://aptem.net.ru





Delphi 1

Рисование на минимизированной иконке

Есть ли у кого пример рисования на иконке минимизированного приложения с помощью Delphi?

Когда Delphi-приложение минимизировано, иконка, которая вы видите - реальное главное окно, объект TApplication, поэтому вам необходимо использовать переменную Application. Таким образом, чтобы удостовериться что приложение минимизировано, вызовите IsIconic(Application.Handle). Если функция возвратит True, значит так оно и есть. Для рисования на иконке создайте обработчик события Application.OnMessage. Здесь вы можете проверять наличие сообщения WM_Paint и при его нахождении отрисовывать иконку. Это должно выглядеть приблизительно так:


   
...
{ private declarations }
procedure AppOnMessage(VAR Msg : TMsg; VAR Handled : Boolean);
...

procedure TForm1.AppOnMessage(VAR Msg : TMsg; VAR Handled : Boolean);
VAR
DC : hDC;
PS : TPaintStuff;
begin
IF (Msg.Message = WM_PAINT) AND IsIconic(Application.Handle) THEN
BEGIN
DC := BeginPaint(Application.Handle, PS);
... осуществляем отрисовку с помощью вызовов Windows GDI ...

EndPaint(Application.Handle, PS);
Handled := True;
END;
end;

procedure TForm1.OnCreate(Sender : TObject);
begin
Application.OnMessage := AppOnMessage;
end;

Код создан на основе алгоритма Neil Rubenking.

Nick Hodges
Monterey, CA [000605]