Функция EngControlSprites (winddi.h)

Функция EngControlSprites удаляет или перерисовывает спрайты в указанной области WNDOBJ .

Синтаксис

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

Параметры

pwo

Указатель на структуру WNDOBJ , в которой создаются или удаляются спрайты.

fl

Этот параметр может иметь одно из следующих значений:

ECS_TEARDOWN

Запрашивает удаление и удаление эффекта спрайта любого спрайта, перекрывающего область WNDOBJ. Другими словами, GDI перерисовывает спрайт с нейтрализованным эффектом, чтобы спрайт не отображался на экране. GDI восстанавливает область под спрайтом, выполняя немедленные вызовы DrvCopyBits.

ECS_REDRAW

Запрашивает перерисовку GDI, восстанавливая все спрайты, которые перекрывают область WNDOBJ. GDI перерисовывается непосредственно на экран, выполняя вызовы DrvCopyBits.

Возвращаемое значение

EngControlSprites возвращает значение TRUE после успешного завершения запрошенной операции; в противном случае возвращается значение FALSE.

Комментарии

Вызов ECS_TEARDOWN может быть постоянным. Например, драйвер может вызвать EngControlSprites один раз с ECS_TEARDOWN сразу после создания WNDOBJ, и спрайты никогда не будут рисоваться в верхней части окна.

Драйвер может вызывать EngControlSprites с ECS_REDRAW много раз, не выполняя промежуточные вызовы с ECS_TEARDOWN, чтобы принудительно перекрасить спрайт в любое время.

ECS_TEARDOWN всегда выполняет немедленную перерисовку любых спрайтов поверх области WNDOBJ. GDI сохраняет биты под спрайтами, вызывая DrvCopyBits , чтобы скопировать их с экрана, а затем композитирует спрайты на экране, вызывая DrvCopyBits. Это позволяет композитировать спрайты в задний буфер непосредственно перед отправкой команды буфера на оборудование (с помощью DrvSwapBuffers или любого другого механизма буфера буфера драйвера). Это позволяет легко компонует спрайты без мигания, когда окно имеет двойную буферизацию.

ECS_TEARDOWN никогда не вызовет отправку WOC_SPRITE_NO_OVERLAP сообщения, а также ECS_REDRAW никогда не вызовет отправку WOC_SPRITE_OVERLAP сообщения.

EngControlSprites можно вызывать, даже если спрайты в настоящее время не перекрывают область WNDOBJ.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть winddi.h (включая Winddi.h)
Библиотека Win32k.lib
DLL Win32k.sys

См. также раздел

EngCreateWnd

WNDOBJ