DwmEnableBlurBehindWindow-Funktion (dwmapi.h)
Aktiviert den Weichzeichnereffekt für ein angegebenes Fenster.
Syntax
HRESULT DwmEnableBlurBehindWindow(
[in] HWND hWnd,
[in] const DWM_BLURBEHIND *pBlurBehind
);
Parameter
[in] hWnd
Das Handle für das Fenster, auf das die Unschärfenbehind-Daten angewendet werden.
[in] pBlurBehind
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 |