Compartir a través de


Función StretchBlt (wingdi.h)

La función StretchBlt copia un mapa de bits de un rectángulo de origen en un rectángulo de destino, estirando o comprimiendo el mapa de bits para ajustarse a las dimensiones del rectángulo de destino, si es necesario. El sistema estira o comprime el mapa de bits según el modo de extensión establecido actualmente en el contexto del dispositivo de destino.

Sintaxis

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

Parámetros

[in] hdcDest

Controlar el contexto del dispositivo de destino.

[in] xDest

Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.

[in] yDest

Coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de destino.

[in] wDest

Ancho, en unidades lógicas, del rectángulo de destino.

[in] hDest

Alto, en unidades lógicas, del rectángulo de destino.

[in] hdcSrc

Identificador del contexto del dispositivo de origen.

[in] xSrc

Coordenada x, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.

[in] ySrc

Coordenada y, en unidades lógicas, de la esquina superior izquierda del rectángulo de origen.

[in] wSrc

Ancho, en unidades lógicas, del rectángulo de origen.

[in] hSrc

Alto, en unidades lógicas, del rectángulo de origen.

[in] rop

Operación de trama que se va a realizar. Los códigos de operación de trama definen cómo el sistema combina colores en las operaciones de salida que implican un pincel, un mapa de bits de origen y un mapa de bits de destino.

Consulte BitBlt para obtener una lista de códigos de operación de trama comunes (ROP). Tenga en cuenta que el ROP CAPTUREBLT generalmente no se puede usar para imprimir contextos de dispositivo.

Valor devuelto

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.

Comentarios

StretchBlt estira o comprime el mapa de bits de origen en memoria y, a continuación, copia el resultado en el rectángulo de destino. Este mapa de bits puede ser un mapa de bits (DDB) compatible o la salida de CreateDIBSection. Los datos de color de los píxeles de patrón o destino se combinan después de que se produzca la ampliación o compresión.

Cuando se registra un metarchivo mejorado, se produce un error (y la función devuelve FALSE) si el contexto del dispositivo de origen identifica un contexto de dispositivo de metarchivo mejorado.

Si la operación de trama especificada requiere un pincel, el sistema usa el pincel seleccionado actualmente en el contexto del dispositivo de destino.

Las coordenadas de destino se transforman mediante la transformación especificada actualmente para el contexto del dispositivo de destino; las coordenadas de origen se transforman mediante la transformación especificada actualmente para el contexto del dispositivo de origen.

Si la transformación de origen tiene una rotación o un cable, se produce un error.

Si los mapas de bits de destino, origen y patrón no tienen el mismo formato de color, StretchBlt convierte los mapas de bits de origen y patrón para que coincidan con el mapa de bits de destino.

Si StretchBlt debe convertir un mapa de bits monocromático en un mapa de bits de color, establece bits blancos (1) en el color de fondo y los bits negros (0) en el color de primer plano. Para convertir un mapa de bits de color en un mapa de bits monocromático, establece píxeles que coinciden con el color de fondo en blanco (1) y establece todos los demás píxeles en negro (0). Se usan los colores de primer plano y de fondo del contexto de dispositivo con color.

StretchBlt crea una imagen reflejada de un mapa de bits si los signos de los parámetros nWidthSrc y nWidthDest o si los parámetros nHeightSrc y nHeightDest difieren. Si nWidthSrc y nWidthDest tienen signos diferentes, la función crea una imagen reflejada del mapa de bits a lo largo del eje X. Si nHeightSrc y nHeightDest tienen signos diferentes, la función crea una imagen reflejada del mapa de bits a lo largo del eje Y.

No todos los dispositivos admiten la función StretchBlt . Para obtener más información, consulte GetDeviceCaps.

ICM: No se realiza ninguna administración de colores cuando se produce una operación delit.

Cuando se usa en un sistema de supervisión múltiple, hdcSrc y hdcDest deben hacer referencia al mismo dispositivo o se producirá un error en la función. Para transferir datos entre controladores de dominio para distintos dispositivos, convierta el mapa de bits de memoria en un DIB mediante una llamada a GetDIBits. Para mostrar la DIB en el segundo dispositivo, llame a SetDIBits o StretchDIBits.

Ejemplos

Para obtener un ejemplo, consulte Escalado de una imagen.

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 wingdi.h (incluye Windows.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

BitBlt

Funciones de mapa de bits

Información general sobre mapas de bits

CreateDIBSection

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits