Freigeben über


DwmEnableBlurBehindWindow-Funktion (dwmapi.h)

Aktiviert den Weichzeichnereffekt für ein angegebenes Fenster.

Syntax

HRESULT DwmEnableBlurBehindWindow(
  HWND                 hWnd,
  const DWM_BLURBEHIND *pBlurBehind
);

Parameter

hWnd

Das Handle für das Fenster, auf das die Unschärfenbehind-Daten angewendet werden.

pBlurBehind

[in]

Ein Zeiger auf eine DWM_BLURBEHIND-Struktur , die Weichzeichnerbehind-Daten bereitstellt.

Rückgabewert

Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Hinweis

Ab Windows 8 führt der Aufruf dieser Funktion nicht zum Weichzeichnereffekt, da sich die Art und Weise, wie Fenster gerendert werden, geändert hat.

Aktivieren Sie Weichzeichner, indem Sie das fEnable-Element der DWM_BLURBEHIND-Struktur auf TRUE festlegen. Dies führt dazu, dass nachfolgende Kompositionen des Fensters den Inhalt dahinter verschwommen. Diese Funktion sollte unmittelbar vor einem BeginPaint-Aufruf aufgerufen werden, um sicherzustellen, dass der Effekt sofort angewendet wird.

Die Alphawerte im Fenster werden berücksichtigt, und das Rendering auf der Weichzeichnerebene verwendet diese Alphawerte. Es liegt in der Verantwortung Ihrer Anwendung sicherzustellen, dass die Alphawerte aller Pixel im Fenster korrekt sind. Einige GDI-Vorgänge (Windows Graphics Device Interface) behalten alpha-Werte nicht bei. Daher sollten Sie bei der Darstellung untergeordneter Fenster vorsichtig sein, da die Alphawerte, die sie beitragen, unvorhersehbar sind.

Die region, die in der DWM_BLURBEHIND-Struktur angegeben ist, gehört Ihnen als Aufrufer. Es liegt in der Verantwortung des Aufrufers, die Region frei zu geben, und Sie können dies tun, sobald der Funktionsaufruf abgeschlossen ist.

Diese Funktion kann nur in Fenstern der obersten Ebene aufgerufen werden. Ein Fehler tritt auf, wenn diese Funktion für andere Fenstertypen aufgerufen wird.

Diese Funktion muss immer dann aufgerufen werden, wenn die DWM-Komposition (Desktop Window Manager) umgeschaltet wird. Behandeln Sie die WM_DWMCOMPOSITIONCHANGED Meldung für die Benachrichtigung über Kompositionsänderungen.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die Unschärfe hinter dem gesamten Fenster angewendet wird.

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;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dwmapi.h
Bibliothek Dwmapi.lib
DLL Dwmapi.dll

Weitere Informationen

Übersicht über DWM Blur Behind