wingdi.h


MaskBlt

La función MaskBlt combina los datos de color para los mapas de bits de origen y destino usando una máscara y las operaciones de rastreo especificadas.

Sintaxis

BOOL MaskBlt(
    HDC hdcDest,      // manipulador de contexto de dispositivo de destino
    int nXDest,       // coordenada x de la esquina superior izquierda del rectángulo destino
    int nYDest,       // coordenada y de la esquina superior izquierda del rectángulo destino
    int nWidth,       // anchura de los rectángulos origen y destino
    int nHeight,      // altura de los rectángulos origen y destino
    HDC hdcSrc,       // manipulador de contexto de dispositivo de origen
    int nXSrc,        // coordenada x de la esquina superior izquierda del rectángulo origen
    int nYSrc,        // coordenada y de la esquina superior izquierda del rectángulo origen
    HBITMAP hbmMask,  // manipulador de máscara de bits monocromática
    int xMask,        // desplazamiento horizontal del pixel en el mapa de bits de la máscara 
    int yMask,        // desplazamiento vertical del pixel en el mapa de bits de la máscara
    DWORD dwRop       // código de operación de rastreo
   );

Parámetros:

hdcDest: identifica el contexto de dispositivo de destino.

nXDest: especifica la coordenada lógica x de la esquina superior izquierda del rectángulo de destino.

nYDest: especifica la coordenada lógica y de la esquina superior izquierda del rectángulo de destino.

nWidth: especifica la anchura, en unidades lógicas, de los mapas de bits de destino y origen.

nHeight: especifica la altura, en unidades lógicas, de los mapas de bits de destino y origen.

hdcSrc: identifica el contexto de dispositivo desde el que es copiado el mapa de bits. Debe ser cero si el parámetro dwRop especifica una operación de rastreo que no precise un origen.

nXSrc: especifica la coordenada lógica x de la esquina superior izquierda del mapa de bits de origen.

nYSrc: especifica la coordenada lógica y de la esquina superior izquierda del mapa de bits de origen.

hbmMask: identifica el mapa de bits monocromático que se enmascarará con el mapa de bits en color del contexto de dispositivo origen.

xMask: especifica el desplazamiento horizontal en pixels para el mapa de bits de máscara especificado por el parámetro hbmMask.

yMask: especifica el desplazamiento vertical en pixels para el mapa de bits de máscara especificado por el parámetro hbmMask.

dwRop: especifica los códigos de operación de rastreo ternarias tanto para el primer plano como para el fondo que la función usa para controlar la combinación de datos de origen y destino. La operación de rastreo para el fondo se almacena en el byte de mayor peso de la palabra de mayor peso de este valor; la operación de rastreo para el primer plano se almacena en el byte de menor peso de la palabra de mayor peso de este valor; la palabra de menor peso de este valor se ignora, y debe ser cero. La macro MAKEROP4 crea los códigos de las combinaciones de operaciones de rastreo de primer plano y de fondo.

Para más detalles sobre el concepto de primer plano y fondo en el contexto de esta función, ver la sección de observaciones.

Para una lista de los códigos de rastreo, ver la función BitBlt.

Valor de retorno

Si la función tiene éxito, el valor de retorno es TRUE.

Si la función falla, el valor de retorno es FALSE. Para obtener información complementaria sobre el error, llamar a la función GetLastError.

Observaciones

Un valor de 1 en la máscara especificada por hbmMask indica que debe aplicarse la operación de rastreo para el primer plano especificada por dwRop. Un valor de 0 en la máscara indica que se debe aplicar la operación de rastreo para el fondo especifica por dwRop.

Si las operaciones de rastreo precisan de un origen, el rectángulo de la máscara debe cubrir el rectángulo del origen. Si no lo hace, la función fallará. Si las operaciones de rastreo no requieren un origen, el rectángulo de la máscara debe cubrir el rectángulo de destino. Si no lo hace, la función fallará.

Si se está realizando una rotación o una transformación de recorte para el contexto de dispositivo de origen cuando se llama a la función, se produce un error. Sin embargo, se permiten otros tipos de transformaciones.

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

Si el mapa de bits de la máscara no es monocromo, ocurrirá un error.

Cuando se empieza a grabar un metafile mejorado, ocurrirá un error (y la función volverá con FALSE) si el contexto de dispositivo del origen identifica a un contexto de dispositivo de metafile mejorado.

No todos los dispositivos soportan la función MaskBlt. La aplicación debe llamar a la función GetDeviceCaps para determinar si un dispositivo la soporta.

Si no se suministra un mapa de bits de máscara, esta función se comporta exactamente igual que BitBlt, usando el código de operación de rastreo del primer plano.

Los desplazamientos de pixel en el mapa de bits de la máscara se mapean al punto (0,0) del mapa de bits del contexto de dispositivo de origen. Esto es habitual en los casos donde un mapa de bits contiene un conjunto de máscaras; la aplicación puede aplicar fácilmente cualquiera de ellas a un bloque de máscaras mediante el ajuste de los desplazamientos de pixels y de los tamaños de los rectángulos que se envía a MaskBlt.