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 |