Bagikan melalui


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

Lihat juga

Gambaran Umum DWM Blur Behind