Fungsi DwmEnableBlurBehindWindow (dwmapi.h)
Mengaktifkan efek kabur pada jendela tertentu.
Sintaks
HRESULT DwmEnableBlurBehindWindow(
[in] HWND hWnd,
[in] const DWM_BLURBEHIND *pBlurBehind
);
Parameter
[in] hWnd
Handel ke jendela tempat data blur-behind diterapkan.
[in] pBlurBehind
Penunjuk ke struktur DWM_BLURBEHIND yang menyediakan data kabur di belakang.
Mengembalikan nilai
Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Keterangan
Catatan
Dimulai dengan Windows 8, memanggil fungsi ini tidak mengakibatkan efek kabur, karena perubahan gaya dalam cara jendela dirender.
Aktifkan kabur dengan mengatur anggota fEnable dari struktur DWM_BLURBEHIND ke TRUE. Ini menghasilkan komposisi jendela berikutnya yang mengaburkan konten di belakangnya. Fungsi ini harus dipanggil segera sebelum panggilan BeginPaint untuk memastikan penerapan efek yang diminta.
Nilai alfa di jendela dihormati, dan penyajian di atas kabur akan menggunakan nilai alfa ini. Aplikasi Anda bertanggung jawab untuk memastikan bahwa nilai alfa semua piksel di jendela sudah benar. Beberapa operasi Windows Graphics Device Interface (GDI) tidak mempertahankan nilai alfa, jadi Anda harus berhati-hati saat menyajikan jendela anak karena nilai alfa yang mereka kontribusikan tidak dapat diprediksi.
Wilayah yang ditentukan dalam struktur DWM_BLURBEHIND dimiliki oleh Anda sebagai pemanggil. Ini adalah tanggung jawab penelepon untuk membebaskan wilayah, dan Anda dapat melakukannya segera setelah panggilan fungsi selesai.
Fungsi ini hanya dapat dipanggil pada jendela tingkat atas. Kesalahan terjadi ketika fungsi ini dipanggil pada jenis jendela lain.
Fungsi ini harus dipanggil setiap kali komposisi Desktop Window Manager (DWM) diubah. Tangani pesan WM_DWMCOMPOSITIONCHANGED untuk pemberitahuan perubahan komposisi.
Contoh
Contoh berikut menunjukkan cara menerapkan pengaburan di belakang seluruh jendela.
HRESULT EnableBlurBehind(HWND hwnd)
{
HRESULT hr = S_OK;
// Create and populate the Blur Behind structure
DWM_BLURBEHIND bb = {0};
// Enable Blur Behind and apply to the entire client area
bb.dwFlags = DWM_BB_ENABLE;
bb.fEnable = true;
bb.hRgnBlur = NULL;
// Apply Blur Behind
hr = DwmEnableBlurBehindWindow(hwnd, &bb);
if (SUCCEEDED(hr))
{
// ...
}
return hr;
}
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 | dwmapi.h |
Pustaka | Dwmapi.lib |
DLL | Dwmapi.dll |