Función BufferedPaintRenderAnimation (uxtheme.h)
Pinta el siguiente marco de una animación de pintura almacenada en búfer.
Sintaxis
BOOL BufferedPaintRenderAnimation(
HWND hwnd,
HDC hdcTarget
);
Parámetros
hwnd
Tipo: HWND
Controla la ventana en la que se reproducen las animaciones.
hdcTarget
Tipo: HDC
Identificador del controlador de dominio de destino en el que se anima el búfer.
Valor devuelto
Tipo: BOOL
Devuelve TRUE si el marco se ha pintado o FALSE en caso contrario.
Comentarios
Si esta función devuelve TRUE, la aplicación no debe seguir pintando. Si esta función devuelve FALSE, la aplicación debería pintar normalmente.
Una aplicación llama a esta función dentro de su controlador de WM_PAINT . Después de bufferedPaintRenderAnimation pinta un fotograma de animación, una aplicación normalmente continuará sin realizar sus operaciones de pintura habituales. Si procede, una aplicación puede optar por representar una interfaz de usuario (UI) adicional sobre la parte superior de la animación. En el ejemplo de código siguiente, que se va a incluir como parte de un cuerpo de código mayor, se muestra cómo usar las funciones de dibujo de animación.
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.
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | uxtheme.h |
Archivo DLL | UxTheme.dll |