Función MaskBlt (wingdi.h)

La función MaskBlt combina los datos de color de los mapas de bits de origen y destino mediante la operación de máscara y trama especificadas.

Sintaxis

BOOL MaskBlt(
  [in] HDC     hdcDest,
  [in] int     xDest,
  [in] int     yDest,
  [in] int     width,
  [in] int     height,
  [in] HDC     hdcSrc,
  [in] int     xSrc,
  [in] int     ySrc,
  [in] HBITMAP hbmMask,
  [in] int     xMask,
  [in] int     yMask,
  [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] width

Ancho, en unidades lógicas, del rectángulo de destino y del mapa de bits de origen.

[in] height

Alto, en unidades lógicas, del rectángulo de destino y del mapa de bits de origen.

[in] hdcSrc

Identificador del contexto del dispositivo desde el que se va a copiar el mapa de bits. Debe ser cero si el parámetro dwRop especifica una operación ráster que no incluye un origen.

[in] xSrc

Coordenada x, en unidades lógicas, de la esquina superior izquierda del mapa de bits de origen.

[in] ySrc

Coordenada y, en unidades lógicas, de la esquina superior izquierda del mapa de bits de origen.

[in] hbmMask

Identificador del mapa de bits de máscara monocromática combinado con el mapa de bits de color en el contexto del dispositivo de origen.

[in] xMask

Desplazamiento horizontal de píxeles para el mapa de bits de máscara especificado por el parámetro hbmMask .

[in] yMask

Desplazamiento vertical de píxeles para el mapa de bits de máscara especificado por el parámetro hbmMask .

[in] rop

Códigos de operación ternarios (ROP) ternarios y de primer plano que la función usa para controlar la combinación de datos de origen y destino. El código de operación de trama en segundo plano se almacena en el byte de orden superior de la palabra de orden superior de este valor; El código de operación de trama en primer plano se almacena en el byte de orden inferior de la palabra de orden superior de este valor; se omite la palabra de orden inferior de este valor y debe ser cero. La macro MAKEROP4 crea estas combinaciones de códigos de operación de primer y segundo plano.

Para obtener una explicación del primer plano y el fondo en el contexto de esta función, vea la siguiente sección Comentarios.

Para obtener una lista de códigos de operación de trama comunes (ROP), consulte la función BitBlt . 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

La función MaskBlt usa mapas de bits dependientes del dispositivo.

Un valor de 1 en la máscara especificada por hbmMask indica que el código de operación de trama en primer plano especificado por dwRop debe aplicarse en esa ubicación. Un valor de 0 en la máscara indica que el código de operación de trama en segundo plano especificado por dwRop debe aplicarse en esa ubicación.

Si las operaciones de trama requieren un origen, el rectángulo de máscara debe cubrir el rectángulo de origen. Si no es así, se producirá un error en la función. Si las operaciones de trama no requieren un origen, el rectángulo de máscara debe cubrir el rectángulo de destino. Si no es así, se producirá un error en la función.

Si una transformación de rotación o distorsión está en vigor para el contexto de dispositivo de origen cuando se llama a esta función, se produce un error. Sin embargo, se permiten otros tipos de transformación.

Si los formatos de color de los mapas de bits de origen, patrón y destino difieren, esta función convierte el formato de patrón o de origen (o ambos) para que coincidan con el formato de destino.

Si el mapa de bits de máscara no es un mapa de bits monocromático, se produce un error.

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.

No todos los dispositivos admiten la función MaskBlt . Una aplicación debe llamar a la función GetDeviceCaps con el parámetro nIndex como RC_BITBLT para determinar si un dispositivo admite esta función.

Si no se proporciona ningún mapa de bits de máscara, esta función se comporta exactamente como BitBlt, mediante el código de operación de trama en primer plano.

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

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 diferentes dispositivos, convierta el mapa de bits de memoria (mapa de bits compatible o DDB) en un DIB mediante una llamada a GetDIBits. Para mostrar la DIB en el segundo dispositivo, llame a SetDIBits o StretchDIBits.

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

GetDIBits

GetDeviceCaps

PlgBlt

SetDIBits

StretchBlt

StretchDIBits