次の方法で共有


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