Freigeben über


BufferedPaintRenderAnimation-Funktion (uxtheme.h)

Zeichnet den nächsten Frame einer gepufferten Farbenanimation.

Syntax

BOOL BufferedPaintRenderAnimation(
  HWND hwnd,
  HDC  hdcTarget
);

Die Parameter

hwnd

Typ: HWND-

Behandeln Sie das Fenster, in dem die Animationen wiedergegeben werden.

hdcTarget

Typ: HDC

Handle des Ziel-DC, auf dem der Puffer animiert wird.

Rückgabewert

Typ: BOOL

Gibt TRUE zurück, wenn der Rahmen gezeichnet wurde, oder FALSE .

Bemerkungen

Wenn diese Funktion WAHR zurückgibt, sollte die Anwendung kein weiteres Malen ausführen. Wenn diese Funktion FALSCH zurückgibt, sollte die Anwendung normal zeichnen.

Eine Anwendung ruft diese Funktion innerhalb des WM_PAINT Handlers auf. Nachdem BufferedPaintRenderAnimation einen Animationsframe zeichnet, wird eine Anwendung in der Regel fortgesetzt, ohne die üblichen Malvorgänge auszuführen. Falls zutreffend, kann eine Anwendung festlegen, dass oben in der Animation zusätzliche Benutzeroberfläche (UI) gerendert wird. Im folgenden Codebeispiel, das als Teil eines größeren Codeteils enthalten sein soll, wird gezeigt, wie die Funktionen zum Zeichnen von Animationen verwendet werden.

    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.
}

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows Vista [nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2008 [Nur Desktop-Apps]
Zielplattform Fenster
Header uxtheme.h
Library Uxtheme.lib
DLL UxTheme.dll