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

Previous  Top  Next

    
 

Автор: Nick Hodges (Monterey, CA)

 

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

 

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

 

Code:

...

{ 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.

 

©Drkb::01793

http://delphiworld.narod.ru/

DelphiWorld 6.0