Fungsi BufferedPaintRenderAnimation (uxtheme.h)
Melukis bingkai berikutnya dari animasi cat buffer.
Sintaks
BOOL BufferedPaintRenderAnimation(
HWND hwnd,
HDC hdcTarget
);
Parameter
hwnd
Jenis: HWND
Tangani ke jendela tempat animasi diputar.
hdcTarget
Jenis: HDC
Menangani DC target tempat buffer dianimasikan.
Nilai kembali
Jenis: BOOL
Mengembalikan TRUE jika bingkai telah dicat, atau FALSE sebaliknya.
Keterangan
Jika fungsi ini mengembalikan TRUE, aplikasi tidak boleh melakukan lukisan lebih lanjut. Jika fungsi ini mengembalikan FALSE, aplikasi harus melukis secara normal.
Aplikasi memanggil fungsi ini dalam handler WM_PAINT . Setelah BufferedPaintRenderAnimation melukis bingkai animasi, aplikasi biasanya akan berlanjut tanpa melakukan operasi pengecatan yang biasa. Jika sesuai, aplikasi dapat memilih untuk merender antarmuka pengguna (UI) tambahan di atas animasi. Contoh kode berikut, untuk disertakan sebagai bagian dari isi kode yang lebih besar, menunjukkan cara menggunakan fungsi lukisan animasi.
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.
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | uxtheme.h |
DLL | UxTheme.dll |