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