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 |