Compartir a través de


CDC::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 si es necesario para ajustarse a las dimensiones del rectángulo de destino.

BOOL StretchBlt( 
   int x, 
   int y, 
   int nWidth, 
   int nHeight, 
   CDC* pSrcDC, 
   int xSrc, 
   int ySrc, 
   int nSrcWidth, 
   int nSrcHeight, 
   DWORD dwRop  
);

Parámetros

  • x
    Especifica la coordenada X (en unidades lógicas) de la esquina superior izquierda del rectángulo de destino.

  • y
    Especifica la coordenada Y (en unidades lógicas) de la esquina superior izquierda del rectángulo de destino.

  • nWidth
    Especifica el ancho (en unidades lógicas) del rectángulo de destino.

  • nHeight
    Especifica el alto (en unidades lógicas) del rectángulo de destino.

  • pSrcDC
    Especifica el contexto de dispositivo de origen.

  • xSrc
    Especifica la coordenada X (en unidades lógicas) de la esquina superior izquierda del rectángulo de origen.

  • ySrc
    Especifica la coordenada Y (en unidades lógicas) de la esquina superior izquierda del rectángulo de origen.

  • nSrcWidth
    Especifica el ancho (en unidades lógicas) del rectángulo de origen.

  • nSrcHeight
    Especifica el alto (en unidades lógicas) del rectángulo de origen.

  • dwRop
    Especifica la operación de trama que se va a realizar. Los códigos de operación de trama definen cómo combina GDI los colores en las operaciones de salida que implican un pincel actual, un posible mapa de bits de origen y un mapa de bits de destino. Este parámetro puede tener uno de los valores siguientes:

    • BLACKNESS   Pone en negro toda la salida.

    • DSTINVERT   Invierte el mapa de bits de destino.

    • MERGECOPY   Combina el patrón y el mapa de bits de origen mediante el operador booleano AND.

    • MERGEPAINT   Combina el mapa de bits de origen invertido con el mapa de bits de destino mediante el operador booleano OR.

    • NOTSRCCOPY   Copia el mapa de bits de origen invertido al destino.

    • NOTSRCERASE   Invierte el resultado de combinar los mapas de bits de origen y de destino mediante el operador booleano OR.

    • PATCOPY   Copia el patrón al mapa de bits de destino.

    • PATINVERT   Combina el mapa de bits de destino con el patrón mediante el operador booleano XOR.

    • PATPAINT   Combina el mapa de bits de origen invertido con el patrón mediante el operador booleano OR. Combina el resultado de esta operación con el mapa de bits de destino mediante el operador booleano OR.

    • SRCAND   Combina píxeles de los mapas de bits de origen y de destino mediante el operador booleano AND.

    • SRCCOPY   Copia el mapa de bits de origen al mapa de bits de destino.

    • SRCERASE   Invierte el mapa de bits de destino y combina el resultado con el mapa de bits de origen mediante el operador booleano AND.

    • SRCINVERT   Combina píxeles de los mapas de bits de destino y de origen mediante el operador booleano XOR.

    • SRCPAINT   Combina píxeles de los mapas de bits de destino y de origen mediante el operador booleano OR.

    • WHITENESS   Pone en blanco toda la salida.

Valor devuelto

Es distinto de cero si se dibuja el mapa de bits; de lo contrario, es 0.

Comentarios

La función emplea el modo de ajuste del contexto de dispositivo de destino (establecido por SetStretchBltMode) para determinar cómo estirar o comprimir el mapa de bits.

La función StretchBlt mueve el mapa de bits del dispositivo de origen especificado por pSrcDC al dispositivo de destino representado por el objeto de contexto de dispositivo a cuya función miembro se llama. Los parámetros xSrc, ySrc, nSrcWidth y nSrcHeight definen la esquina superior izquierda y las dimensiones del rectángulo de origen. Los parámetros x, y, nWidth y nHeight proporcionan la esquina superior izquierda y las dimensiones del rectángulo de destino. La operación de trama especificada por dwRop define cómo se combinan el mapa de bits de origen y los bits que ya están presentes en el dispositivo de destino.

La función StretchBlt crea una imagen reflejada de un mapa de bits si los signos de los parámetros nSrcWidth y nWidth o nSrcHeight y nHeight son distintos. Si nSrcWidth y nWidth tienen signos diferentes, la función crea una imagen reflejada del mapa de bits a lo largo del eje X. Si nSrcHeight y nHeight tienen signos diferentes, la función crea una imagen reflejada del mapa de bits a lo largo del eje Y.

La función StretchBlt estira o comprime el mapa de bits de origen en memoria y después copia el resultado al destino. Si se va a combinar un patrón con el resultado, no se combina hasta que el mapa de bits de origen estirado no se copia al destino. Si se usa un pincel, es el pincel seleccionado en el contexto de dispositivo de destino. Las coordenadas de destino se transforman según el contexto de dispositivo de destino; las coordenadas de origen se transforman según el contexto de dispositivo de origen.

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 de patrón para que coincidan con los mapas de bits de destino. En la conversión se usan los colores de primer plano y de fondo del contexto de dispositivo de destino.

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

No todos los dispositivos admiten la función StretchBlt. Para determinar si un dispositivo admite StretchBlt, llame a la función miembro GetDeviceCaps con el índice RASTERCAPS y compruebe el valor devuelto para la marca RC_STRETCHBLT.

Requisitos

Encabezado: afxwin.h

Vea también

Referencia

CDC (clase)

Gráfico de jerarquías

CDC::BitBlt

CDC::GetDeviceCaps

CDC::SetStretchBltMode

StretchBlt