Freigeben über


BufferedPaintRenderAnimation-Funktion (uxtheme.h)

Zeichnet den nächsten Frame einer gepufferten Farbanimation.

Syntax

BOOL BufferedPaintRenderAnimation(
  HWND hwnd,
  HDC  hdcTarget
);

Parameter

hwnd

Typ: HWND

Handle mit dem Fenster, in dem die Animationen wiedergegeben werden.

hdcTarget

Typ: HDC

Handle des Ziel-DC, für den der Puffer animiert wird.

Rückgabewert

Typ: BOOL

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

Hinweise

Wenn diese Funktion TRUE zurückgibt, sollte die Anwendung kein weiteres Malen durchführen. Wenn diese Funktion FALSE zurückgibt, sollte die Anwendung normal zeichnen.

Eine Anwendung ruft diese Funktion innerhalb ihres WM_PAINT-Handlers auf. Nachdem BufferedPaintRenderAnimation einen Animationsrahmen erstellt hat, wird eine Anwendung in der Regel fortgesetzt, ohne die üblichen Malvorgänge auszuführen. Gegebenenfalls kann eine Anwendung eine zusätzliche Benutzeroberfläche (UI) über die Animation rendern. Das folgende Codebeispiel, das als Teil eines größeren Codetexts eingeschlossen werden soll, zeigt, wie die Animationsmalfunktionen 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
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile uxtheme.h
DLL UxTheme.dll