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