Compartir a través de


Función EngCreateWnd (winddi.h)

La función EngCreateWnd crea una estructura WNDOBJ para la ventana a la que hace referencia hwnd.

Sintaxis

ENGAPI WNDOBJ * EngCreateWnd(
  SURFOBJ          *pso,
  HWND             hwnd,
  WNDOBJCHANGEPROC pfn,
  FLONG            fl,
  int              iPixelFormat
);

Parámetros

pso

Puntero a una estructura SURFOBJ que identifica una superficie de dispositivo.

hwnd

Controle la ventana creada por la llamada de una aplicación a la función Win32 CreateWindow o equivalente.

pfn

fl

Es una máscara de bits que especifica el tipo de cambios que GDI debe realizar un seguimiento y notificar al controlador. Este valor debe ser coherente a través de todas las solicitudes WNDOBJ realizadas por el controlador. Este parámetro puede ser uno o varios de los siguientes valores de campo de bits:

Marca Significado
WO_DRAW_NOTIFY GDI debe proporcionar al controlador WOC_DRAWN notificaciones.
WO_RGN_CLIENT GDI debe realizar un seguimiento de los cambios en la región cliente del objeto de ventana y notificar al controlador cuándo cambia la región de cliente visible de la ventana. La región enumerada en la función de devolución de llamada es el nuevo área de cliente visible de la ventana.
WO_RGN_CLIENT_DELTA GDI debe realizar un seguimiento de los cambios en la región del cliente delta del objeto de ventana y notificar al controlador cuándo cambia la región visible de la ventana. La región enumerada en la función de devolución de llamada es un área delta no vacía que se encuentra en la nueva región, pero no en la región antigua. La región delta solo es válida durante la devolución de llamada.
WO_RGN_DESKTOP_COORD GDI crea una estructura WNDOBJ con coordenadas de escritorio cuando el sistema ejecuta varios monitores.

GDI omite esta marca y crea una estructura WNDOBJ con coordenadas de dispositivo cuando el sistema ejecuta un solo monitor.

WO_RGN_SURFACE GDI debe realizar un seguimiento de los cambios en la región expuesta del objeto de ventana y notificar al controlador cuándo cambia la región de la superficie. La región expuesta es el área expuesta de visualización, excepto todas las regiones de cliente visibles de las ventanas a las que realiza el seguimiento el controlador.
WO_RGN_SURFACE_DELTA GDI debe realizar un seguimiento de los cambios en la región de la superficie delta del objeto de ventana y notificar al controlador cuándo cambia la región expuesta. La región enumerada en la función de devolución de llamada es un área delta no vacía que se encuentra en la nueva región expuesta, pero no en la región expuesta antigua. La región de la superficie delta solo es válida durante la devolución de llamada.
WO_RGN_UPDATE_ALL GDI debe notificar al controlador todas las ventanas que realiza el seguimiento cuando cambie cualquiera de sus regiones visibles. Esta marca debe usarse junto con la marca WO_RGN_CLIENT.
WO_RGN_WINDOW GDI debe realizar un seguimiento de los cambios en toda la región del objeto de ventana (que incluye la región cliente de la ventana) y notificar al controlador cuándo cambia la región de la ventana.
WO_SPRITE_NOTIFY GDI debe notificar al controlador todas las ventanas que realiza el seguimiento cuando cualquiera de sus regiones visibles se superpone o ya no se superpone por sprites.

iPixelFormat

Especifica el formato de píxel asociado al objeto de ventana. El formato de píxel de un objeto de ventana es fijo. Este parámetro puede ser cero si no hay ningún formato de píxel asociado.

Valor devuelto

El valor devuelto es un puntero a una estructura WNDOBJ si la función es correcta. De lo contrario, el valor devuelto es −1 si el controlador realiza el seguimiento de la misma ventana o cero si el controlador no realiza el seguimiento de la misma ventana.

Comentarios

Dado que la creación de un objeto de ventana implica bloquear recursos de ventana, solo se debe llamar a EngCreateWnd en el contexto de la WNDOBJ_SETUP escape en DrvEscape.

EngCreateWnd admite el seguimiento de ventanas por varios controladores, donde cada controlador se identifica mediante un puntero de función WNDOBJCHANGEPROC único identificado por pfn. Por ejemplo, un controlador de vídeo en directo puede realizar un seguimiento de los cambios en las ventanas de vídeo en directo mientras un controlador OpenGL realiza el seguimiento de los cambios en las ventanas de OpenGL.

GDI llamará a WNDOBJCHANGEPROC con el estado de ventana más reciente si DrvEscape crea un nuevo WNDOBJ. GDI también notificará a WNDOBJCHANGEPROC cuando se destruye una ventana descrita por una estructura WNDOBJ.

Las notificaciones WOC_SPRITE_OVERLAP y WOC_SPRITE_NO_OVERLAP que se pasan a WNDOBJCHANGEPROC permiten que el controlador se informe sincrónicamente cuando un sprite está encima de su ventana y realice las acciones adecuadas. El controlador recibe estas notificaciones incluso si todas las sprites han sido destruidas por la marca ECS_TEARDOWN de EngControlSprites.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 2000 y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Universal
Encabezado winddi.h (incluya Winddi.h)
Library Win32k.lib
Archivo DLL Win32k.sys

Consulte también

DrvEscape

WNDOBJ

WNDOBJCHANGEPROC