Condividi tramite


Funzione BitBlt (wingdi.h)

La funzione BitBlt esegue un trasferimento in bit dei dati del colore corrispondenti a un rettangolo di pixel dal contesto del dispositivo di origine specificato in un contesto di dispositivo di destinazione.

Sintassi

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

Parametri

[in] hdc

Handle al contesto del dispositivo di destinazione.

[in] x

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

[in] y

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

[in] cx

Larghezza, in unità logiche, dei rettangoli di origine e di destinazione.

[in] cy

Altezza, in unità logiche, dell'origine e dei rettangoli di destinazione.

[in] hdcSrc

Handle nel contesto del dispositivo di origine.

[in] x1

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

[in] y1

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

[in] rop

Codice dell'operazione raster. Questi codici definiscono il modo in cui i dati di colore per il rettangolo di origine devono essere combinati con i dati di colore per il rettangolo di destinazione per ottenere il colore finale.

L'elenco seguente mostra alcuni codici di operazione raster comuni.

Valore Significato
OSCURITÀ
Riempie il rettangolo di destinazione usando il colore associato all'indice 0 nella tavolozza fisica. Nella tavolozza fisica predefinita questo colore è il nero.
CAPTUREBLT
Include tutte le finestre che vengono strati nella parte superiore della finestra nell'immagine risultante. Per impostazione predefinita, l'immagine contiene solo la finestra. Si noti che in questa situazione non è in genere possibile stampare contesti di dispositivo.
DSTINVERT
Inverte il rettangolo di destinazione.
MERGECOPY
Unisce i colori del rettangolo di origine con il pennello attualmente selezionato in hdcDest usando l'operatore AND booleano.
MERGEPAINT
Unisce i colori del rettangolo di origine invertito con i colori del rettangolo di destinazione usando l'operatore OR booleano.
NOMIRRORBITMAP
Impedisce l'esecuzione del mirroring della bitmap.
NOTSRCCOPY
Copia il rettangolo di origine invertito nella destinazione.
NOTSRCERASE
Combina i colori dei rettangoli di origine e di destinazione usando l'operatore OR booleano e quindi inverte il colore risultante.
PATCOPY
Copia il pennello attualmente selezionato in hdcDest, nella bitmap di destinazione.
PATINVERT
Combina i colori del pennello attualmente selezionato in hdcDest, con i colori del rettangolo di destinazione usando l'operatore XOR booleano.
PATPAINT
Combina i colori del pennello attualmente selezionato in hdcDest, con i colori del rettangolo di origine invertito usando l'operatore OR booleano. Il risultato di questa operazione viene combinato con i colori del rettangolo di destinazione usando l'operatore OR booleano.
SRCAND
Combina i colori dei rettangoli di origine e di destinazione usando l'operatore AND booleano.
SRCCOPY
Copia il rettangolo di origine direttamente nel rettangolo di destinazione.
SRCERASE
Combina i colori invertiti del rettangolo di destinazione con i colori del rettangolo di origine usando l'operatore AND booleano.
SRCINVERT
Combina i colori dei rettangoli di origine e di destinazione usando l'operatore XOR booleano.
SRCPAINT
Combina i colori dei rettangoli di origine e di destinazione usando l'operatore OR booleano.
BIANCHEZZA
Riempie il rettangolo di destinazione usando il colore associato all'indice 1 nella tavolozza fisica. Nella tavolozza fisica predefinita questo colore è il bianco.

Valore restituito

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

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

BitBlt esegue solo il ritaglio nel controller di dominio di destinazione.

Se una trasformazione rotazione o shear è effettiva nel contesto del dispositivo di origine, BitBlt restituisce un errore. Se esistono altre trasformazioni nel contesto del dispositivo di origine (e una trasformazione corrispondente non è effettiva nel contesto del dispositivo di destinazione), il rettangolo nel contesto del dispositivo di destinazione viene esteso, compresso o ruotato, in base alle esigenze.

Se i formati di colore dei contesti del dispositivo di origine e di destinazione non corrispondono, la funzione BitBlt converte il formato del colore di origine in modo che corrisponda al formato di destinazione.

Quando viene registrato un metafile avanzato, si verifica un errore se il contesto del dispositivo di origine identifica un contesto di dispositivo metafile avanzato.

Non tutti i dispositivi supportano la funzione BitBlt . Per altre informazioni, vedere la voce RC_BITBLT funzionalità raster nella funzione GetDeviceCaps e le funzioni seguenti: MaskBlt, PlgBlt e StretchBlt.

BitBlt restituisce un errore se i contesti del dispositivo di origine e di destinazione rappresentano dispositivi diversi. Per trasferire i dati tra controller di dominio per dispositivi diversi, convertire la bitmap di memoria in un DIB chiamando GetDIBits. Per visualizzare il DIB al secondo dispositivo, chiamare SetDIBits o StretchDIBits.

ICM: Nessuna gestione dei colori viene eseguita quando si verificano le lit.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di 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;
}

Per visualizzare questo esempio nel contesto, vedere Acquisizione di un'immagine.

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

Funzioni bitmap

Panoramica delle bitmap

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

StretchBlt

StretchDIBits