SetLayeredWindowAttributes 函数 (winuser.h)

设置分层窗口的不透明度和透明度颜色键。

语法

BOOL SetLayeredWindowAttributes(
  [in] HWND     hwnd,
  [in] COLORREF crKey,
  [in] BYTE     bAlpha,
  [in] DWORD    dwFlags
);

参数

[in] hwnd

类型:HWND

分层窗口的句柄。 通过使用 CreateWindowEx 函数创建窗口时指定WS_EX_LAYERED,或者在创建窗口后通过 SetWindowLong 设置WS_EX_LAYERED来创建分层窗口。

Windows 8:顶级窗口和子窗口支持WS_EX_LAYERED样式。 以前的 Windows 版本仅对顶级窗口支持 WS_EX_LAYERED

[in] crKey

类型: COLORREF

COLORREF 结构,指定组合分层窗口时要使用的透明度颜色键。 窗口以这种颜色绘制的所有像素都是透明的。 若要生成 COLORREF,请使用 RGB 宏。

[in] bAlpha

类型: BYTE

用于描述分层窗口的不透明度的 Alpha 值。 类似于 BLENDFUNCTION 结构的 SourceConstantAlpha 成员。 当 bAlpha 为 0 时,窗口是完全透明的。 当 bAlpha 为 255 时,窗口是不透明的。

[in] dwFlags

类型:DWORD

要执行的操作。 此参数可使用以下一个或多个值。

含义
LWA_ALPHA
0x00000002
使用 bAlpha 确定分层窗口的不透明度。
LWA_COLORKEY
0x00000001
使用 crKey 作为透明度颜色。

返回值

类型: BOOL

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

请注意,一旦为分层窗口调用 SetLayeredWindowAttributes ,后续 的 UpdateLayeredWindow 调用将失败,直到清除并再次设置分层样式位。

有关详细信息,请参阅 使用分层窗口

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 在 Windows 8.1) 中引入的 ext-ms-win-ntuser-window-l1-1-1 (

另请参阅

AlphaBlend

COLORREF

概念性

CreateWindowEx

其他资源

RGB

引用

SetWindowLong

TransparentBlt

UpdateLayeredWindow

使用 Windows

Windows