BufferedPaintRenderAnimation 関数 (uxtheme.h)
バッファー処理されたペイント アニメーションの次のフレームを描画します。
構文
BOOL BufferedPaintRenderAnimation(
HWND hwnd,
HDC hdcTarget
);
パラメーター
hwnd
種類: HWND
アニメーションが再生されるウィンドウを処理します。
hdcTarget
種類: HDC
バッファーがアニメーション化されるターゲット DC のハンドル。
戻り値
種類: BOOL
フレームが塗りつぶされている場合は TRUE 、それ以外の場合は FALSE を 返します。
注釈
この関数が TRUE を返す場合、アプリケーションはそれ以上の描画を行う必要はありません。 この関数が FALSE を返す場合、アプリケーションは通常どおりに描画する必要があります。
アプリケーションは、 そのWM_PAINT ハンドラー内でこの関数を呼び出します。 BufferedPaintRenderAnimation がアニメーション フレームを描画した後、通常、アプリケーションは通常の描画操作を実行せずに続行されます。 必要に応じて、アプリケーションはアニメーションの上部に追加のユーザー インターフェイス (UI) をレンダリングすることを選択できます。 次のコード例は、より大きなコード本文の一部として含めるために、アニメーション描画関数を使用する方法を示しています。
if (!_fBufferedPaintInit)
{
BufferedPaintInit();
_fBufferedPaintInit = TRUE;
}
// Determine whether the paint message was generated by a softfade animation.
if (!BufferedPaintRenderAnimation(hWnd, hdc))
{
// Initialize buffered paint parameters.
BP_ANIMATIONPARAMS animParams = {sizeof(BP_ANIMATIONPARAMS)};
animParams.style = BPAS_LINEAR;
animParams.dwDuration = 0;
GetThemeTransitionDuration(hTheme, iPartId, iStateIdFrom,
iStateIdTo, TMT_TRANSITIONDURATIONS, &animParams.dwDuration);
HDC hdcFrom, hdcTo;
HANIMATIONBUFFER hbpAnimation = BeginBufferedAnimation(hWnd, hdc, &rc,
BPBF_COMPATIBLEBITMAP, NULL, &animParams, &hdcFrom, &hdcTo);
if (hbpAnimation)
{
if (hdcFrom)
{
PaintImpl(hdcFrom, iPartId, iStateIdFrom /*, ...*/);
}
if (hdcTo)
{
PaintImpl(hdcTo, iPartId, iStateIdTo/*, ...*/);
}
EndBufferedAnimation(hbpAnimation, TRUE);
}
else
{
// Default to unbuffered paint
PaintImpl(hdc, iPartId, iStateIdTo/*, ...*/);
}
}
// Else do not paint because the BufferedPaintRenderAnimation function
// already did.
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | uxtheme.h |
[DLL] | UxTheme.dll |