DwmGetWindowAttribute 函数是 Desktop Window Manager (DWM) API 中的一个函数,用于检索指定窗口的特定属性。以下是该函数的声明:
HRESULT DwmGetWindowAttribute(
  HWND  hwnd,
  DWORD dwAttribute,
  PVOID pvAttribute,
  DWORD cbAttribute
);

参数说明:
  •  hwnd: 要检索属性的窗口句柄。

  •  dwAttribute: 要检索的属性,可以是下列之一:

  - DWMWA_NCRENDERING_ENABLED: 返回一个值,指示非客户区渲染是否已启用。
  - DWMWA_NCRENDERING_POLICY: 返回一个值,指示非客户区渲染的策略。
  - DWMWA_TRANSITIONS_FORCEDISABLED: 返回一个值,指示是否强制禁用转换。
  - DWMWA_ALLOW_NCPAINT: 返回一个值,指示是否允许非客户区在WM_NCPAINT消息处理程序中被定制。
  - 等等,还有其他可选的属性。

  •  pvAttribute: 指向接收属性值的缓冲区的指针。

  •  cbAttribute: 缓冲区的大小,以字节为单位。


返回值是 HRESULT 类型,如果函数调用成功,将返回 S_OK,否则返回错误代码。

在调用此函数之前,需要确保在代码中正确引用 Dwmapi.h 头文件,并且在连接时链接到 Dwmapi.lib 库。

例如,要检索非客户区渲染是否已启用,可以这样调用:
HWND hwnd; // 你的窗口句柄
BOOL ncRenderingEnabled;
HRESULT hr = DwmGetWindowAttribute(hwnd, DWMWA_NCRENDERING_ENABLED, &ncRenderingEnabled, sizeof(BOOL));
if (SUCCEEDED(hr)) {
    // 使用 ncRenderingEnabled 的值
}


转载请注明出处:http://www.pingtaimeng.com/article/detail/27358/Win32 API/Dwmapi.h/DwmGetWindowAttribute