Función UpdateLayeredWindow (winuser.h)
Actualiza la posición, el tamaño, la forma, el contenido y la transparencia de una ventana superpuesta.
Sintaxis
BOOL UpdateLayeredWindow(
[in] HWND hWnd,
[in, optional] HDC hdcDst,
[in, optional] POINT *pptDst,
[in, optional] SIZE *psize,
[in, optional] HDC hdcSrc,
[in, optional] POINT *pptSrc,
[in] COLORREF crKey,
[in, optional] BLENDFUNCTION *pblend,
[in] DWORD dwFlags
);
Parámetros
[in] hWnd
Tipo: HWND
Identificador de una ventana superpuesta. Se crea una ventana superpuesta especificando WS_EX_LAYERED al crear la ventana con la función CreateWindowEx .
Windows 8: el estilo de WS_EX_LAYERED es compatible con ventanas de nivel superior y ventanas secundarias. Las versiones anteriores de Windows solo admiten WS_EX_LAYERED para ventanas de nivel superior.
[in, optional] hdcDst
Tipo: HDC
Identificador de un controlador de dominio para la pantalla. Este identificador se obtiene especificando NULL al llamar a la función GetDC . Se usa para la coincidencia de colores de paleta cuando se actualiza el contenido de la ventana. Si hdcDst es NULL, se usará la paleta predeterminada.
Si hdcSrc es NULL, hdcDst debe ser NULL.
[in, optional] pptDst
Tipo: POINT*
Puntero a una estructura que especifica la nueva posición de pantalla de la ventana superpuesta. Si la posición actual no cambia, pptDst puede ser NULL.
[in, optional] psize
Tipo: SIZE*
Puntero a una estructura que especifica el nuevo tamaño de la ventana superpuesta. Si el tamaño de la ventana no cambia, psize puede ser NULL. Si hdcSrc es NULL, psize debe ser NULL.
[in, optional] hdcSrc
Tipo: HDC
Identificador de un controlador de dominio para la superficie que define la ventana superpuesta. Este identificador se puede obtener llamando a la función CreateCompatibleDC . Si la forma y el contexto visual de la ventana no cambian, hdcSrc puede ser NULL.
[in, optional] pptSrc
Tipo: POINT*
Puntero a una estructura que especifica la ubicación de la capa en el contexto del dispositivo. Si hdcSrc es NULL, pptSrc debe ser NULL.
[in] crKey
Tipo: COLORREF
Estructura que especifica la clave de color que se va a usar al componer la ventana superpuesta. Para generar un COLORREF, use la macro RGB .
[in, optional] pblend
Tipo: BLENDFUNCTION*
Puntero a una estructura que especifica el valor de transparencia que se va a usar al componer la ventana superpuesta.
[in] dwFlags
Tipo: DWORD
Este parámetro puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
|
Use pblend como función blend. Si el modo de visualización es de 256 colores o menos, el efecto de este valor es el mismo que el efecto de ULW_OPAQUE. |
|
Use crKey como color de transparencia. |
|
Dibuje una ventana superpuesta opaca. |
|
Forzar que se produzca un error en la función UpdateLayeredWindowIndirect si el tamaño de la ventana actual no coincide con el tamaño especificado en psize. |
Si hdcSrc es NULL, dwFlags debe ser cero.
Valor devuelto
Tipo: BOOL
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
El controlador de dominio de origen debe contener la superficie que define el contenido visible de la ventana superpuesta. Por ejemplo, puede seleccionar un mapa de bits en un contexto de dispositivo obtenido llamando a la función CreateCompatibleDC .
Una aplicación debe llamar a SetLayout en el contexto del dispositivo hdcSrc para establecer correctamente el modo de creación de reflejo. SetLayout reflejará correctamente todo el dibujo en una HDC , conservando correctamente el glifo de texto y el orden de dirección del mapa de bits (opcionalmente). No se puede modificar el dibujo directamente en los bits de un mapa de bits independiente del dispositivo (DIB). Para obtener más información, vea Diseño de ventana y creación de reflejo.
La función UpdateLayeredWindow mantiene la apariencia de la ventana en la pantalla. No es necesario volver a dibujar las ventanas debajo de una ventana superpuesta cuando se descubran debido a una llamada a UpdateLayeredWindow, ya que el sistema los volverá a pintar automáticamente. Esto permite una animación perfecta de la ventana superpuesta.
UpdateLayeredWindow siempre actualiza toda la ventana. Para actualizar parte de una ventana, use el WM_PAINT tradicional y establezca el valor de mezcla mediante SetLayeredWindowAttributes.
Para obtener el mejor rendimiento de dibujo por la ventana superpuesta y las ventanas subyacentes, la ventana superpuesta debe ser lo más pequeña posible. Una aplicación también debe procesar el mensaje y volver a crear sus ventanas superpuestas cuando cambia la profundidad del color de la pantalla.
Para obtener más información, vea Ventanas superpuestas.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winuser.h (incluya Windows.h) |
Library | User32.lib |
Archivo DLL | User32.dll |
Conjunto de API | ext-ms-win-ntuser-window-l1-1-1 (introducido en Windows 8.1) |
Consulte también
Conceptual
Otros recursos
Referencia