Funzione BufferedPaintRenderAnimation (uxtheme.h)
Disegna il fotogramma successivo di un'animazione di vernice memorizzata nel buffer.
Sintassi
BOOL BufferedPaintRenderAnimation(
HWND hwnd,
HDC hdcTarget
);
Parametri
hwnd
Tipo: HWND
Gestire la finestra in cui vengono riprodotte le animazioni.
hdcTarget
Tipo: HDC
Handle del controller di dominio di destinazione in cui viene animato il buffer.
Valore restituito
Tipo: BOOL
Restituisce TRUE se il frame è stato disegnato o FALSE in caso contrario.
Commenti
Se questa funzione restituisce TRUE, l'applicazione non deve eseguire ulteriori dipinti. Se questa funzione restituisce FALSE, l'applicazione deve disegnare normalmente.
Un'applicazione chiama questa funzione all'interno del relativo gestore WM_PAINT . Dopo che BufferedPaintRenderAnimation disegna un frame di animazione, un'applicazione in genere continuerà senza eseguire le normali operazioni di disegno. Se appropriato, un'applicazione può scegliere di eseguire il rendering di un'interfaccia utente aggiuntiva nella parte superiore dell'animazione. Nell'esempio di codice seguente, da includere come parte di un corpo di codice più grande, viene illustrato come usare le funzioni di disegno dell'animazione.
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.
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | uxtheme.h |
DLL | UxTheme.dll |