共用方式為


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