Funzione MaskBlt (wingdi.h)

La funzione MaskBlt combina i dati di colore per le bitmap di origine e di destinazione usando l'operazione di maschera e raster specificata.

Sintassi

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
);

Parametri

[in] hdcDest

Handle per il contesto del dispositivo di destinazione.

[in] xDest

Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.

[in] yDest

Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.

[in] width

Larghezza, in unità logiche, del rettangolo di destinazione e della bitmap di origine.

[in] height

Altezza, in unità logiche, del rettangolo di destinazione e della bitmap di origine.

[in] hdcSrc

Handle per il contesto del dispositivo da cui copiare la bitmap. Deve essere zero se il parametro dwRop specifica un'operazione raster che non include un'origine.

[in] xSrc

Coordinata x, in unità logiche, dell'angolo superiore sinistro della bitmap di origine.

[in] ySrc

Coordinata y, in unità logiche, dell'angolo superiore sinistro della bitmap di origine.

[in] hbmMask

Handle per la bitmap della maschera monocromatica combinata con la bitmap a colori nel contesto del dispositivo di origine.

[in] xMask

Offset in pixel orizzontale per la bitmap mask specificata dal parametro hbmMask .

[in] yMask

Offset in pixel verticale per la bitmap mask specificata dal parametro hbmMask .

[in] rop

Codici di operazione raster in primo piano e in background usati dalla funzione per controllare la combinazione di dati di origine e di destinazione. Il codice dell'operazione raster in background viene archiviato nel byte di ordine elevato della parola di ordine elevato di questo valore; il codice dell'operazione raster in primo piano viene archiviato nel byte in ordine basso della parola di ordine elevato di questo valore; la parola in ordine basso di questo valore viene ignorata e deve essere zero. La macro MAKEROP4 crea tali combinazioni di codici di operazione raster in primo piano e in background.

Per una descrizione del primo piano e dello sfondo nel contesto di questa funzione, vedere la sezione Osservazioni seguente.

Per un elenco dei codici di operazione raster comuni, vedere la funzione BitBlt . Si noti che l'ROP CAPTUREBLT in genere non può essere usato per la stampa di contesti di dispositivo.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero.

Commenti

La funzione MaskBlt usa bitmap dipendenti dal dispositivo.

Il valore 1 nella maschera specificata da hbmMask indica che il codice dell'operazione raster in primo piano specificato da dwRop deve essere applicato in tale posizione. Il valore 0 nella maschera indica che il codice dell'operazione raster in background specificato da dwRop deve essere applicato in tale posizione.

Se le operazioni raster richiedono un'origine, il rettangolo mask deve coprire il rettangolo di origine. In caso contrario, la funzione avrà esito negativo. Se le operazioni raster non richiedono un'origine, il rettangolo mask deve coprire il rettangolo di destinazione. In caso contrario, la funzione avrà esito negativo.

Se una trasformazione rotazione o shear è attiva per il contesto del dispositivo di origine quando viene chiamata questa funzione, si verifica un errore. Sono tuttavia consentiti altri tipi di trasformazione.

Se i formati di colore delle bitmap di origine, motivo e destinazione differiscono, questa funzione converte il modello o il formato di origine o entrambi in modo che corrispondano al formato di destinazione.

Se la bitmap mask non è una bitmap monocromatica, si verifica un errore.

Quando viene registrato un metafile avanzato, si verifica un errore (e la funzione restituisce FALSE) se il contesto del dispositivo di origine identifica un contesto di dispositivo metafile avanzato.

Non tutti i dispositivi supportano la funzione MaskBlt . Un'applicazione deve chiamare la funzione GetDeviceCaps con il parametro nIndex come RC_BITBLT per determinare se un dispositivo supporta questa funzione.

Se non viene fornita alcuna bitmap mask, questa funzione si comporta esattamente come BitBlt, usando il codice dell'operazione raster in primo piano.

ICM: Non viene eseguita alcuna gestione dei colori quando si verificano le blit.

Se usato in un sistema di monitoraggio multiplo, hdcSrc e hdcDest devono fare riferimento allo stesso dispositivo o la funzione avrà esito negativo. Per trasferire dati tra controller di dominio per dispositivi diversi, convertire la bitmap di memoria (bitmap compatibile o DDB) in un diB chiamando GetDIBits. Per visualizzare il DIB al secondo dispositivo, chiamare SetDIBits o StretchDIBits.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h (include Windows.h)
Libreria Gdi32.lib
DLL Gdi32.dll

Vedi anche

Bitblt

Funzioni bitmap

Panoramica delle bitmap

GetDIBits

GetDeviceCaps

PlgBlt

SetDIBits

StretchBlt

StretchDIBits