AnimateWindow

윈도우에 효과를 주어 사라지고 등장하게 해 주는 API 이다.

[Flash] http://neodreamer.tistory.com/attachment/cfile5.uf@125F4F1149CF8A02438DC4.swf



함수 설명 ( 출처 : MSDN )
Syntax

BOOL AnimateWindow(
HWND hwnd,
DWORD dwTime,
DWORD dwFlags
);

Parameter 설명 보기


첫 번째 인자인 hwnd 는 효과를 적용하기위한 윈도우의 핸들이다.

두 번째 인자인 dwTime 은 지정된 효과를 수행할 시간으로 밀리세컨드 단위로 입력한다. 입력값이 작을 수록 에니메이션 효과의 시간이 짧아 지므로 에니메이션이 빠르게 동작한다.

세 번째 인자는 효과의 종류이다.
  • AW_SLIDE : 기본 인자로 에니메이션 효과를 의미하며 생략해도 슬리이딩 효과가 있는 것 같다. AW_CENTER 가 함께 적용되면 무시된다.
  • AW_ACTIVATE : 윈도우을 활성화 한다. AW_HIDE와 사용하지 않는다.
  • AW_BLEND : Fading 효과
  • AW_HIDE : 윈도우를 사라지게 한다.
  • AW_CENTER : 윈도우의 가운데 점을 기준으로 효과를 적용한다.
  • AW_HOR_POSITIVE : 윈도우를 좌에서 우로 사라지게 또는 보이게 함.
  • AW_HOR_NEGATIVE : 윈도우를 우에서 좌로 사라지게 또는 보이게 함.
  • AW_VER_POSITIVE : 윈도우를 위에서 아래로 사라지게 또는 보이게 함.
  • AW_VER_NEGATIVE : 윈도우를 아래에서 위로 사라지게 또는 보이게 함.
아래 소스는 이 글 위에 포함되어 있는 플래시를 만들면서 작성한 코드이다.
01.//---------------------------------------------------------------------------
02.void __fastcall TfrmMain::btnBlendClick(TObject *Sender)
03.{
04.    // Blending
05.    AnimateWindow( Handle, 1000, AW_HIDE | AW_BLEND );
06.    Sleep(1000);
07.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_BLEND );
08.}
09.//---------------------------------------------------------------------------
10.void __fastcall TfrmMain::btnCenterClick(TObject *Sender)
11.{
12.    // Center
13.    AnimateWindow( Handle, 1000, AW_HIDE | AW_CENTER );
14.    Sleep(1000);
15.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_CENTER );
16.}
17.//---------------------------------------------------------------------------
18.void __fastcall TfrmMain::btnHPosClick(TObject *Sender)
19.{
20.    // Horizontal Positive
21.    AnimateWindow( Handle, 1000, AW_HIDE | AW_HOR_POSITIVE );
22.    Sleep(1000);
23.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_HOR_POSITIVE );
24.}
25.//---------------------------------------------------------------------------
26.void __fastcall TfrmMain::btnHNegClick(TObject *Sender)
27.{
28.    // Horizontal Negative
29.    AnimateWindow( Handle, 1000, AW_HIDE | AW_HOR_NEGATIVE );
30.    Sleep(1000);
31.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_HOR_NEGATIVE );
32.}
33.//---------------------------------------------------------------------------
34.void __fastcall TfrmMain::btnVPosClick(TObject *Sender)
35.{
36.    // Vertical Positive
37.    AnimateWindow( Handle, 1000, AW_HIDE | AW_VER_POSITIVE );
38.    Sleep(1000);
39.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_VER_POSITIVE );
40.}
41.//---------------------------------------------------------------------------
42.void __fastcall TfrmMain::btnVNegClick(TObject *Sender)
43.{
44.    // Vertical Negative
45.    AnimateWindow( Handle, 1000, AW_HIDE | AW_VER_NEGATIVE );
46.    Sleep(1000);
47.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_VER_NEGATIVE );
48.}
49.//---------------------------------------------------------------------------
50.void __fastcall TfrmMain::btnHPosVPosClick(TObject *Sender)
51.{
52.    AnimateWindow( Handle, 1000, AW_HIDE | AW_HOR_POSITIVE | AW_VER_POSITIVE );
53.    Sleep(1000);
54.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_HOR_POSITIVE | AW_VER_POSITIVE );
55.}
56.//---------------------------------------------------------------------------
57.void __fastcall TfrmMain::btnHNegVNegClick(TObject *Sender)
58.{
59.    AnimateWindow( Handle, 1000, AW_HIDE | AW_HOR_NEGATIVE | AW_VER_NEGATIVE );
60.    Sleep(1000);
61.    AnimateWindow( Handle, 1000, AW_SLIDE | AW_HOR_NEGATIVE | AW_VER_NEGATIVE );
62.}
63.//---------------------------------------------------------------------------

블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,