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 |