EngControlSprites 函数 (winddi.h)

EngControlSprites 函数在指定的 WNDOBJ 区域下拉或重绘子画面。

语法

ENGAPI BOOL EngControlSprites(
  WNDOBJ *pwo,
  FLONG  fl
);

参数

pwo

指向正在生成或拆除子画面的 WNDOBJ 结构的指针。

fl

此参数可能是以下值之一:

ECS_TEARDOWN

请求 GDI 删除并删除与 WNDOBJ 区域重叠的任何子画面的子画面效果。 换句话说,GDI 使用中和效果重绘子画面,使子画面在屏幕上不可见。 GDI 通过立即调用 DrvCopyBits 来还原子画面下方的区域。

ECS_REDRAW

请求 GDI 重绘,还原与 WNDOBJ 区域重叠的任何子画面。 GDI 通过调用 DrvCopyBits 直接重绘到屏幕。

返回值

成功完成请求的操作后,EngControlSprites 返回 TRUE;否则返回 FALSE

注解

ECS_TEARDOWN的调用可能是永久性的。 例如,驱动程序可以在创建 WNDOBJ 后立即使用ECS_TEARDOWN调用 EngControlSprites 一次,并且不会在窗口顶部绘制任何子画面。

驱动程序可以使用 ECS_REDRAW 多次调用 EngControlSprites ,而无需使用ECS_TEARDOWN进行干预调用,以强制随时重新绘制子画面。

ECS_TEARDOWN始终强制在 WNDOBJ 区域顶部立即重绘任何子画面。 GDI 通过调用 DrvCopyBits 从屏幕复制子画面下的位来保存子画面下的位,然后通过调用 DrvCopyBits 将子画面复合到屏幕上。 这可用于允许在交换缓冲区命令通过 DrvSwapBuffers 或任何其他驱动程序交换缓冲区机制) 发送到硬件 (之前,将子画面复合到后台缓冲区上。 这允许在窗口为双重缓冲时无缝合成子画面,而不会闪烁。

ECS_TEARDOWN永远不会发送WOC_SPRITE_NO_OVERLAP消息,同样,ECS_REDRAW也永远不会导致发送WOC_SPRITE_OVERLAP消息。

即使当前没有子画面与 WNDOBJ 区域重叠,也可以调用 EngControlSprites

要求

要求
最低受支持的客户端 在 Windows 2000 及更高版本的 Windows 操作系统中可用。
目标平台 通用
标头 winddi.h (包括 Winddi.h)
Library Win32k.lib
DLL Win32k.sys

另请参阅

EngCreateWnd

WNDOBJ