EngControlSprites 函式 (winddi.h)
EngControlSprites 函式會在指定的 WNDOBJ 區域上卸載或重新繪製 Sprite。
語法
ENGAPI BOOL EngControlSprites(
WNDOBJ *pwo,
FLONG fl
);
參數
pwo
要建置或卸除 Sprite 的 WNDOBJ 結構的指標。
fl
此參數可以是下列其中一個值:
ECS_TEARDOWN
要求 GDI 終止並移除與 WNDOBJ 區域重疊之任何 Sprite 的 Sprite 效果。 換句話說,GDI 會重繪具有中性效果的Sprite,因此在畫面上看不到Sprite。 GDI 會藉由立即呼叫 DrvCopyBits來還原Sprite下方的區域。
ECS_REDRAW
要求 GDI 重繪,還原與 WNDOBJ 區域重疊的任何 Sprite。 GDI 會透過呼叫 DrvCopyBits直接繪製到畫面。
傳回值
成功完成要求的作業時,EngControlSprites 會傳回 TRUE;否則會傳回 FALSE。
備註
ECS_TEARDOWN調用可能是持續性的。 例如,驅動程式只要建立 WNDOBJ,就可以 ECS_TEARDOWN呼叫 EngControlSprites 一次,只要建立 WNDOBJ,就不會在視窗頂端繪製任何 Sprite。
驅動程式可以使用 ECS_REDRAW 多次呼叫 EngControlSprites ,而不需與 ECS_TEARDOWN 進行交涉呼叫,以便隨時強制重繪 Sprite。
ECS_TEARDOWN一律會強制立即重新繪製 WNDOBJ 區域上方的任何 Sprite。 GDI 會藉由呼叫 DrvCopyBits 從畫面複製它們,然後將Sprite複合到畫面上,藉由呼叫 DrvCopyBits來儲存Sprite下方的位。 這可用來允許在交換緩衝區命令透過 DrvSwapBuffers 或任何其他驅動程式交換緩衝區機制) 傳送至硬體 (之前,將sprite復合到後台緩衝區。 當視窗為雙緩衝時,這允許順暢地組合Sprite,而不閃爍。
ECS_TEARDOWN永遠不會造成傳送WOC_SPRITE_NO_OVERLAP訊息,同樣地,ECS_REDRAW永遠不會傳送WOC_SPRITE_OVERLAP訊息。
即使目前沒有 Sprite 重疊 WNDOBJ 區域,也可以呼叫 EngControlSprites。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 2000 和更新版本的 Windows 作業系統。 |
目標平台 | Universal |
標頭 | winddi.h (包含Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |