AnimateWindow 関数 (winuser.h)

ウィンドウを表示または非表示にするときに特殊効果を生成できます。 アニメーションには、ロール、スライド、折りたたみ、展開、アルファブレンドフェードの 4 種類があります。

構文

BOOL AnimateWindow(
  [in] HWND  hWnd,
  [in] DWORD dwTime,
  [in] DWORD dwFlags
);

パラメーター

[in] hWnd

型: HWND

アニメーション化するウィンドウへのハンドル。 呼び出し元のスレッドは、このウィンドウを所有している必要があります。

[in] dwTime

型: DWORD

アニメーションの再生にかかる時間 (ミリ秒単位)。 通常、アニメーションの再生には 200 ミリ秒かかります。

[in] dwFlags

型: DWORD

アニメーションの種類。 このパラメーターには、次の 1 つ以上の値を指定できます。 既定では、これらのフラグはウィンドウを表示するときに有効になります。 ウィンドウを非表示にするときに有効にするには、 AW_HIDE と論理 OR 演算子を適切なフラグと共に使用します。

説明
AW_ACTIVATE
0x00020000
ウィンドウをアクティブにします。 この値は 、AW_HIDEでは使用しないでください。
AW_BLEND
0x00080000
フェード効果を使用します。 このフラグは、 hwnd が最上位ウィンドウの場合にのみ使用できます。
AW_CENTER
0x00000010
AW_HIDEが使用されている場合はウィンドウが内側に折りたたまれるように見せ、AW_HIDEを使用しない場合は外側に展開します。 さまざまな方向フラグは無効です。
AW_HIDE
0x00010000
ウィンドウを非表示にします。 既定では、ウィンドウが表示されます。
AW_HOR_POSITIVE
0x00000001
ウィンドウを左から右にアニメーション化します。 このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDで使用する場合は無視されます。
AW_HOR_NEGATIVE
0x00000002
ウィンドウを右から左にアニメーション化します。 このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDで使用する場合は無視されます。
AW_SLIDE
0x00040000
スライド アニメーションを使用します。 既定では、ロール アニメーションが使用されます。 このフラグは、 AW_CENTERで使用する場合は無視されます。
AW_VER_POSITIVE
0x00000004
ウィンドウを上から下にアニメーション化します。 このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDで使用する場合は無視されます。
AW_VER_NEGATIVE
0x00000008
ウィンドウを下から上にアニメーション化します。 このフラグは、ロールアニメーションまたはスライドアニメーションで使用できます。 AW_CENTERまたはAW_BLENDで使用する場合は無視されます。

戻り値

種類: BOOL

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 関数は、次の状況で失敗します。

  • ウィンドウが既に表示されていて、ウィンドウを表示しようとしている場合。
  • ウィンドウが既に非表示で、ウィンドウを非表示にしようとしている場合。
  • スライドアニメーションまたはロールアニメーションの方向が指定されていない場合。
  • AW_BLENDを使用して子ウィンドウをアニメーション化しようとするとき。
  • スレッドがウィンドウを所有していない場合。 この場合、AnimateWindow は失敗しますが、GetLastError はERROR_SUCCESSを返します。
エラーの詳細情報を得るには、GetLastError 関数を呼び出します。

解説

特殊効果のないウィンドウを表示または非表示にするには、 ShowWindow を使用します。

スライド アニメーションまたはロール アニメーションを使用する場合は、方向を指定する必要があります。 AW_HOR_POSITIVE、AW_HOR_NEGATIVEAW_VER_POSITIVE、またはAW_VER_NEGATIVEのいずれかです。

AW_HOR_POSITIVEまたはAW_HOR_NEGATIVEをAW_VER_POSITIVEまたはAW_VER_NEGATIVEと組み合わせて、ウィンドウを斜めにアニメーション化できます。

ウィンドウとその子ウィンドウのウィンドウ プロシージャは、 WM_PRINT または WM_PRINTCLIENT メッセージを処理する必要があります。 ダイアログ ボックス、コントロール、および共通コントロールは既 にWM_PRINTCLIENTを処理しています。 既定のウィンドウ プロシージャは既 にWM_PRINTを処理しています。

子ウィンドウが部分的にクリップされた状態で表示された場合、アニメーション化されると、クリップされた穴が開きます。

AnimateWindow では RTL ウィンドウがサポートされています。

影が付いているウィンドウは、視覚的に気が散るぎく動くアニメーションが生成されるため、アニメーション化しないでください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-window-l1-1-0 (Windows 8 で導入)

関連項目

概念

その他のリソース

リファレンス

Showwindow

WM_PRINT

WM_PRINTCLIENT

Windows