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 后立即调用 EngControlSprites 一次 ECS_TEARDOWN,并且不会在窗口顶部绘制任何子画面。

驱动程序可以多次调用 EngControlSprites ,而无需与 ECS_REDRAW 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