다음을 통해 공유


BufferedPaintRenderAnimation 함수(uxtheme.h)

버퍼링된 페인트 애니메이션의 다음 프레임을 그립니다.

구문

BOOL BufferedPaintRenderAnimation(
  HWND hwnd,
  HDC  hdcTarget
);

매개 변수

hwnd

형식: HWND

애니메이션이 재생되는 창에 대한 핸들입니다.

hdcTarget

형식: HDC

버퍼에 애니메이션 효과를 준 대상 DC의 핸들입니다.

반환 값

형식: BOOL

프레임이 그려진 경우 TRUE 를 반환하고, 그렇지 않으면 FALSE 를 반환합니다.

설명

이 함수가 TRUE를 반환하는 경우 애플리케이션은 더 이상 그리지 않아야 합니다. 이 함수가 FALSE를 반환하는 경우 애플리케이션은 정상적으로 칠해야 합니다.

애플리케이션은 WM_PAINT 처리기 내에서 이 함수를 호출합니다. BufferedPaintRenderAnimation이 애니메이션 프레임을 그리면 애플리케이션은 일반적으로 일반적인 그리기 작업을 수행하지 않고 계속됩니다. 적절한 경우 애플리케이션은 애니메이션 맨 위에 추가 UI(사용자 인터페이스)를 렌더링하도록 선택할 수 있습니다. 더 큰 코드 본문의 일부로 포함할 다음 코드 예제에서는 애니메이션 그리기 함수를 사용하는 방법을 보여 줍니다.

    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.
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 uxtheme.h
DLL UxTheme.dll