UpdateLayeredWindow 函数 (winuser.h)
更新分层窗口的位置、大小、形状、内容和透明度。
语法
BOOL UpdateLayeredWindow(
[in] HWND hWnd,
[in, optional] HDC hdcDst,
[in, optional] POINT *pptDst,
[in, optional] SIZE *psize,
[in, optional] HDC hdcSrc,
[in, optional] POINT *pptSrc,
[in] COLORREF crKey,
[in, optional] BLENDFUNCTION *pblend,
[in] DWORD dwFlags
);
参数
[in] hWnd
类型:HWND
分层窗口的句柄。 使用 CreateWindowEx 函数创建窗口时,通过指定WS_EX_LAYERED来创建分层窗口。
Windows 8:顶级窗口和子窗口支持WS_EX_LAYERED样式。 以前的 Windows 版本仅支持 顶级窗口WS_EX_LAYERED 。
[in, optional] hdcDst
类型: HDC
屏幕 DC 的句柄。 调用 GetDC 函数时,通过指定 NULL 来获取此句柄。 它用于在更新窗口内容时进行调色板颜色匹配。 如果 hdcDst 为 NULL,将使用默认调色板。
如果 hdcSrc 为 NULL, 则 hdcDst 必须为 NULL。
[in, optional] pptDst
类型: POINT*
指向结构的指针,该结构指定分层窗口的新屏幕位置。 如果当前位置未更改, 则 pptDst 可以为 NULL。
[in, optional] psize
类型: SIZE*
指向结构的指针,该结构指定分层窗口的新大小。 如果窗口大小未更改, psize 可以为 NULL。 如果 hdcSrc 为 NULL, 则 psize 必须为 NULL。
[in, optional] hdcSrc
类型: HDC
定义分层窗口的图面 DC 的句柄。 可以通过调用 CreateCompatibleDC 函数来获取此句柄。 如果窗口的形状和视觉上下文未更改, 则 hdcSrc 可以为 NULL。
[in, optional] pptSrc
类型: POINT*
指向结构的指针,该结构指定层在设备上下文中的位置。 如果 hdcSrc 为 NULL, 则 pptSrc 应为 NULL。
[in] crKey
类型: COLORREF
一个 结构,指定要在组合分层窗口时使用的颜色键。 若要生成 COLORREF,请使用 RGB 宏。
[in, optional] pblend
类型: BLENDFUNCTION*
指向结构的指针,该结构指定要在组合分层窗口时使用的透明度值。
[in] dwFlags
类型:DWORD
此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
使用 pblend 作为混合函数。 如果显示模式为 256 色或更少,则此值的效果与 ULW_OPAQUE的效果相同。 |
|
使用 crKey 作为透明度颜色。 |
|
绘制不透明的分层窗口。 |
|
如果当前窗口大小与 psize 中指定的大小不匹配,则强制 UpdateLayeredWindowIndirect 函数失败。 |
如果 hdcSrc 为 NULL, 则 dwFlags 应为零。
返回值
类型: BOOL
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
源 DC 应包含定义分层窗口的可见内容的图面。 例如,可以在通过调用 CreateCompatibleDC 函数获取的设备上下文中选择位图。
应用程序应在 hdcSrc 设备上下文中调用 SetLayout 以正确设置镜像模式。 SetLayout 将正确镜像所有绘图到 HDC 中,同时正确保留文本字形, (可以选择) 位图方向顺序。 它无法将绘图直接修改为与设备无关的位图 (DIB) 位。 有关详细信息,请参阅 窗口布局和镜像。
UpdateLayeredWindow 函数维护窗口在屏幕上的外观。 由于调用 UpdateLayeredWindow,分层窗口下方的窗口不需要重新绘制,因为系统会自动重新绘制它们。 这允许分层窗口的无缝动画。
UpdateLayeredWindow 始终更新整个窗口。 若要更新窗口的一部分,请使用传统 WM_PAINT 并使用 SetLayeredWindowAttributes 设置混合值。
为使分层窗口和任何基础窗口获得最佳绘制性能,分层窗口应尽可能小。 应用程序还应处理消息,并在显示器的颜色深度更改时重新创建分层窗口。
有关详细信息,请参阅 分层 Windows。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 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 ( |
另请参阅
概念性
其他资源
引用