본문 바로가기
Delphi Tip/이미지-영상

폼 배경에 비트맵 넣기

by MonoSoft 2024. 4. 21.
728x90
반응형

폼 배경에 비트맵 넣기

728x90

 

 

AnimateWindow() API함수는 폼에게 애니메이션 효과를 줄 수 있는 함수이다.

그런데, 폼에 TImage를 올려놓고 비트맵을 불러드린 다음에,

애니메이션 효과를 주면 비트맵이 보이지 않는다.

 

그래서 MSDN을 찾아보니,

WM_PRINTCLIENT를 사용하라고 나온다.

 

 

소스참고

 

unit Unit2;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

 

type

TForm2 = class(TForm)

procedure FormShow(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure FormPaint(Sender: TObject);

private

Bitmap: TBitmap;

procedure WMPRINTCLIENT( var Msg: TMessage ); message WM_PRINTCLIENT;

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

 

implementation

 

{$R *.dfm}

 

procedure TForm2.FormShow(Sender: TObject);

begin

AnimateWindow( Handle, 500, AW_VER_NEGATIVE );

end;

 

procedure TForm2.FormCreate(Sender: TObject);

begin

Bitmap:= TBitmap.Create;

Bitmap.LoadFromFile( '1111.bmp' );

end;

 

procedure TForm2.FormDestroy(Sender: TObject);

begin

Bitmap.Free;

end;

 

procedure TForm2.FormPaint(Sender: TObject);

begin

Self.Canvas.StretchDraw( Canvas.ClipRect, Bitmap );

end;

 

procedure TForm2.WMPRINTCLIENT(var Msg: TMessage);

begin

PaintTo( HDC( Msg.WParam ), 0, 0 );

end;

 

728x90
반응형

댓글