BitBlt, fonction (wingdi.h)

La fonction BitBlt effectue un transfert de bloc de bits des données de couleur correspondant à un rectangle de pixels du contexte d’appareil source spécifié dans un contexte d’appareil de destination.

Syntaxe

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

Paramètres

[in] hdc

Handle du contexte de l’appareil de destination.

[in] x

Coordonnée x, en unités logiques, du coin supérieur gauche du rectangle de destination.

[in] y

Coordonnée y, en unités logiques, du coin supérieur gauche du rectangle de destination.

[in] cx

Largeur, en unités logiques, des rectangles source et de destination.

[in] cy

Hauteur, en unités logiques, des rectangles source et de destination.

[in] hdcSrc

Handle pour le contexte de l’appareil source.

[in] x1

Coordonnée x, en unités logiques, du coin supérieur gauche du rectangle source.

[in] y1

Coordonnée y, en unités logiques, du coin supérieur gauche du rectangle source.

[in] rop

Code d’opération raster. Ces codes définissent la façon dont les données de couleur du rectangle source doivent être combinées avec les données de couleur du rectangle de destination afin d’obtenir la couleur finale.

La liste suivante présente certains codes d’opération raster courants.

Valeur Signification
NOIRCEUR
Remplit le rectangle de destination à l’aide de la couleur associée à l’index 0 dans la palette physique. (Cette couleur est le noir sur la palette physique par défaut.)
CAPTUREBLT
Inclut toutes les fenêtres qui sont superposées au-dessus de votre fenêtre dans l’image résultante. Par défaut, l’image contient uniquement votre fenêtre. Ceci ne peut généralement pas être utilisé pour l'impression dans les contextes de périphérique.
DSTINVERT
Inverse le rectangle de destination.
MERGECOPY
Fusionne les couleurs du rectangle source avec le pinceau actuellement sélectionné dans hdcDest, à l’aide de l’opérateur Boolean AND.
MERGEPAINT
Fusionne les couleurs du rectangle source inversé avec les couleurs du rectangle de destination à l’aide de l’opérateur OR booléen.
NOMIRRORBITMAP
Empêche la mise en miroir de la bitmap.
NOTSRCCOPY
Copie le rectangle source inversé vers la destination.
NOTSRCERASE
Combine les couleurs des rectangles source et de destination à l’aide de l’opérateur Boolean OR, puis inverse la couleur résultante.
PATCOPY
Copie le pinceau actuellement sélectionné dans hdcDest dans la bitmap de destination.
PATINVERT
Combine les couleurs du pinceau actuellement sélectionné dans hdcDest avec les couleurs du rectangle de destination à l’aide de l’opérateur XOR booléen.
PATPAINT
Combine les couleurs du pinceau actuellement sélectionné dans hdcDest avec les couleurs du rectangle source inversé à l’aide de l’opérateur BOOlean OR. Le résultat de cette opération est combiné avec les couleurs du rectangle de destination à l’aide de l’opérateur Boolean OR.
SRCAND
Combine les couleurs des rectangles source et de destination à l’aide de l’opérateur Boolean AND.
SRCCOPY
Copie le rectangle source directement dans le rectangle de destination.
SRCERASE
Combine les couleurs inversées du rectangle de destination avec les couleurs du rectangle source à l’aide de l’opérateur Boolean AND.
SRCINVERT
Combine les couleurs des rectangles source et de destination à l’aide de l’opérateur XOR booléen.
SRCPAINT
Combine les couleurs des rectangles source et de destination à l’aide de l’opérateur BOOlean OR.
BLANCHEUR
Remplit le rectangle de destination à l’aide de la couleur associée à l’index 1 dans la palette physique. (Cette couleur est le blanc sur la palette physique par défaut.)

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

BitBlt effectue uniquement un découpage sur le contrôleur de domaine de destination.

Si une rotation ou une transformation de cisaillement est en vigueur dans le contexte de l’appareil source, BitBlt retourne une erreur. Si d’autres transformations existent dans le contexte de l’appareil source (et qu’aucune transformation correspondante n’est appliquée dans le contexte de l’appareil de destination), le rectangle dans le contexte de l’appareil de destination est étiré, compressé ou pivoté, si nécessaire.

Si les formats de couleur des contextes d’appareil source et de destination ne correspondent pas, la fonction BitBlt convertit le format de couleur source pour qu’il corresponde au format de destination.

Lorsqu’un métafichier amélioré est enregistré, une erreur se produit si le contexte d’appareil source identifie un contexte d’appareil enhanced-metafile.

Tous les appareils ne prennent pas en charge la fonction BitBlt . Pour plus d’informations, consultez l’entrée de la fonctionnalité raster RC_BITBLT dans la fonction GetDeviceCaps , ainsi que les fonctions suivantes : MaskBlt, PlgBlt et StretchBlt.

BitBlt retourne une erreur si les contextes d’appareil source et de destination représentent différents appareils. Pour transférer des données entre contrôleurs de domaine pour différents appareils, convertissez la bitmap de mémoire en DIB en appelant GetDIBits. Pour afficher la DIB sur le deuxième appareil, appelez SetDIBits ou StretchDIBits.

ICM: Aucune gestion des couleurs n’est effectuée lorsque des fentes se produisent.

Exemples

L’exemple de code suivant illustre l’utilisation de 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;
}

Pour voir cet exemple en contexte, consultez Capture d’une image.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wingdi.h (inclure Windows.h)
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

Fonctions bitmap

Vue d’ensemble des bitmaps

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

StretchBlt

StretchDIBits