Compartilhar via


Função BufferedPaintRenderAnimation (uxtheme.h)

Pinta o próximo quadro de uma animação de pintura em buffer.

Sintaxe

BOOL BufferedPaintRenderAnimation(
  HWND hwnd,
  HDC  hdcTarget
);

Parâmetros

hwnd

Tipo: HWND

Manipule para a janela na qual as animações são reproduzidas.

hdcTarget

Tipo: HDC

Identificador do DC de destino no qual o buffer é animado.

Retornar valor

Tipo: BOOL

Retornará TRUE se o quadro tiver sido pintado ou FALSE caso contrário.

Comentários

Se essa função retornar TRUE, o aplicativo não deverá fazer mais nenhuma pintura. Se essa função retornar FALSE, o aplicativo deverá pintar normalmente.

Um aplicativo chama essa função em seu manipulador de WM_PAINT . Depois que BufferedPaintRenderAnimation pintar um quadro de animação, um aplicativo normalmente continuará sem executar suas operações habituais de pintura. Se apropriado, um aplicativo pode optar por renderizar interface do usuário adicional na parte superior da animação. O exemplo de código a seguir, a ser incluído como parte de um corpo maior de código, mostra como usar as funções de pintura de animação.

    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 Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho uxtheme.h
DLL UxTheme.dll