Función BitBlt (wingdi.h)

La función BitBlt realiza una transferencia de bloque de bits de los datos de color correspondientes a un rectángulo de píxeles del contexto de dispositivo de origen especificado en un contexto de dispositivo de destino.

Sintaxis

BOOL BitBlt(
  [in] HDC   hdc,
  [in] int   x,
  [in] int   y,
  [in] int   cx,
  [in] int   cy,
  [in] HDC   hdcSrc,
  [in] int   x1,
  [in] int   y1,
  [in] DWORD rop
);

Parámetros

[in] hdc

Controlar el contexto del dispositivo de destino.

[in] x

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

[in] y

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

[in] cx

Ancho, en unidades lógicas, de los rectángulos de origen y destino.

[in] cy

Alto, en unidades lógicas, de los rectángulos de origen y de destino.

[in] hdcSrc

Identificador del contexto del dispositivo de origen.

[in] x1

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

[in] y1

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

[in] rop

Código de operación ráster. Estos códigos definen cómo se combinarán los datos de color del rectángulo de origen con los datos de color del rectángulo de destino para lograr el color final.

En la lista siguiente se muestran algunos códigos de operación ráster comunes.

Valor Significado
OSCURIDAD
Rellena el rectángulo de destino con el color asociado al índice 0 en la paleta física. (este color es negro para la paleta física predeterminada).
CAPTUREBLT
Incluye las ventanas superpuestas de la ventana en la imagen resultante. De forma predeterminada, la imagen solo contiene la ventana. Observe que, generalmente, esto no se puede usar para los contextos de dispositivos de impresión.
DSTINVERT
Invierte el rectángulo de destino.
MERGECOPY
Combina los colores del rectángulo de origen con el pincel seleccionado actualmente en hdcDest mediante el operador Boolean AND.
MERGEPAINT
Combina los colores del rectángulo de origen invertido con los colores del rectángulo de destino mediante el operador OR booleano.
NOMIRRORBITMAP
Impide que el mapa de bits se refleje.
NOTSRCCOPY
Copia el rectángulo de origen invertido en el destino.
NOTSRCERASE
Combina los colores de los rectángulos de origen y destino mediante el operador OR booleano y, a continuación, invierte el color resultante.
PATCOPY
Copia el pincel seleccionado actualmente en hdcDest, en el mapa de bits de destino.
PATINVERT
Combina los colores del pincel actualmente seleccionado en hdcDest, con los colores del rectángulo de destino mediante el operador XOR booleano.
PATPAINT
Combina los colores del pincel actualmente seleccionado en hdcDest, con los colores del rectángulo de origen invertido mediante el operador OR booleano. El resultado de esta operación se combina con los colores del rectángulo de destino mediante el operador OR booleano.
SRCAND
Combina los colores de los rectángulos de origen y destino mediante el operador BOOLEAN AND.
SRCCOPY
Copia el rectángulo de origen directamente en el rectángulo de destino.
SRCERASE
Combina los colores invertidos del rectángulo de destino con los colores del rectángulo de origen mediante el operador BOOLEAN AND.
SRCINVERT
Combina los colores de los rectángulos de origen y destino mediante el operador XOR booleano.
SRCPAINT
Combina los colores de los rectángulos de origen y destino mediante el operador OR booleano.
BLANCURA
Rellena el rectángulo de destino con el color asociado al índice 1 de la paleta física. (este color es blanco para la paleta física predeterminada).

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. Para obtener información de error extendida, llame a GetLastError.

Comentarios

BitBlt solo realiza el recorte en el controlador de dominio de destino.

Si una transformación de rotación o de descimación está en vigor en el contexto del dispositivo de origen, BitBlt devuelve un error. Si existen otras transformaciones en el contexto del dispositivo de origen (y una transformación coincidente no está en vigor en el contexto del dispositivo de destino), el rectángulo del contexto del dispositivo de destino se estira, comprime o gira, según sea necesario.

Si los formatos de color de los contextos de dispositivo de origen y destino no coinciden, la función BitBlt convierte el formato de color de origen para que coincida con el formato de destino.

Cuando se registra un metarchivo mejorado, se produce un error si el contexto de dispositivo de origen identifica un contexto de dispositivo de metarchivo mejorado.

No todos los dispositivos admiten la función BitBlt . Para obtener más información, vea la entrada de funcionalidad de RC_BITBLT ráster en la función GetDeviceCaps , así como las siguientes funciones: MaskBlt, PlgBlt y StretchBlt.

BitBlt devuelve un error si los contextos de dispositivo de origen y destino representan dispositivos diferentes. Para transferir datos entre controladores de dominio para distintos dispositivos, convierta el mapa de bits de memoria en una DIB mediante una llamada a GetDIBits. Para mostrar la DIB en el segundo dispositivo, llame a SetDIBits o StretchDIBits.

ICM: No se realiza ninguna administración de colores cuando se producen cortes.

Ejemplos

En el ejemplo de código siguiente se muestra el uso de BitBlt.

if (!BitBlt(hdcMemDC,
    0, 0,
    rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,
    hdcWindow,
    0, 0,
    SRCCOPY))
{
    MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);
    goto done;
}

Para ver este ejemplo en contexto, consulte Captura 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

Funciones de mapa de bits

Información general sobre mapas de bits

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

StretchBlt

StretchDIBits