DwmEnableBlurBehindWindow 関数 (dwmapi.h)

指定したウィンドウでぼかし効果を有効にします。

構文

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

パラメーター

hWnd

ぼかしデータが適用されるウィンドウへのハンドル。

pBlurBehind

[in]

ぼかしデータを提供する DWM_BLURBEHIND 構造体へのポインター。

戻り値

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

注意

Windows 8以降、この関数を呼び出しても、ウィンドウのレンダリング方法のスタイルが変更されるため、ぼかし効果は発生しません。

DWM_BLURBEHIND構造体の fEnable メンバーを TRUE に設定して、ぼかしを有効にします。 これにより、ウィンドウの後続のコンポジションによって、その背後にあるコンテンツがぼやけます。 この関数は、効果のプロンプト アプリケーションを確保するために 、BeginPaint 呼び出しの直前に呼び出す必要があります。

ウィンドウのアルファ値が優先され、ぼかしの上のレンダリングでこれらのアルファ値が使用されます。 ウィンドウ内のすべてのピクセルのアルファ値が正しいことを確認するのは、アプリケーションの責任です。 一部の Windows グラフィックス デバイス インターフェイス (GDI) 操作ではアルファ値が保持されないため、子ウィンドウを表示する場合は、アルファ値が予測できないため、注意する必要があります。

DWM_BLURBEHIND構造体内で指定されたリージョンは、呼び出し元として所有されます。 リージョンを解放するのは呼び出し元の責任であり、関数呼び出しが完了したらすぐに行うことができます。

この関数は、最上位のウィンドウでのみ呼び出すことができます。 この関数が他のウィンドウの種類で呼び出されると、エラーが発生します。

この関数は、デスクトップ ウィンドウ マネージャー (DWM) コンポジションが切り替えられるたびに呼び出す必要があります。 構成変更通知の WM_DWMCOMPOSITIONCHANGED メッセージを処理します。

次の例では、ウィンドウ全体の背後にぼかしを適用する方法を示します。

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

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dwmapi.h
Library Dwmapi.lib
[DLL] Dwmapi.dll

こちらもご覧ください

DWM ぼかしの背後の概要