Fonction MaskBlt (wingdi.h)

La fonction MaskBlt combine les données de couleur pour les bitmaps source et de destination à l’aide de l’opération de masque et de raster spécifiée.

Syntaxe

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

Paramètres

[in] hdcDest

Handle du contexte de l’appareil de destination.

[in] xDest

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

[in] yDest

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

[in] width

Largeur, en unités logiques, du rectangle de destination et de l’image bitmap source.

[in] height

Hauteur, en unités logiques, du rectangle de destination et de l’image bitmap source.

[in] hdcSrc

Handle du contexte d’appareil à partir duquel la bitmap doit être copiée. Il doit être égal à zéro si le paramètre dwRop spécifie une opération raster qui n’inclut pas de source.

[in] xSrc

Coordonnée x, en unités logiques, du coin supérieur gauche de l’image bitmap source.

[in] ySrc

Coordonnée y, en unités logiques, du coin supérieur gauche de l’image bitmap source.

[in] hbmMask

Handle de l’image bitmap de masque monochrome combinée à la bitmap de couleur dans le contexte de l’appareil source.

[in] xMask

Décalage de pixels horizontaux pour l’image bitmap du masque spécifiée par le paramètre hbmMask .

[in] yMask

Décalage de pixel vertical pour l’image bitmap de masque spécifiée par le paramètre hbmMask .

[in] rop

Codes d’opération ternaires de premier plan et d’arrière-plan que la fonction utilise pour contrôler la combinaison des données sources et de destination. Le code d’opération raster en arrière-plan est stocké dans l’octet d’ordre élevé du mot d’ordre élevé de cette valeur ; le code d’opération raster au premier plan est stocké dans l’octet de bas ordre du mot d’ordre élevé de cette valeur ; le mot de bas ordre de cette valeur est ignoré et doit être égal à zéro. La macro MAKEROP4 crée de telles combinaisons de codes d’opération de premier plan et de trame d’arrière-plan.

Pour une discussion sur le premier plan et l’arrière-plan dans le contexte de cette fonction, consultez la section Remarques suivante.

Pour obtenir la liste des codes d’opération raster (ROPs) courants, consultez la fonction BitBlt . Notez que le ROP CAPTUREBLT ne peut généralement pas être utilisé pour imprimer des contextes d’appareil.

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.

Remarques

La fonction MaskBlt utilise des bitmaps dépendantes de l’appareil.

La valeur 1 dans le masque spécifié par hbmMask indique que le code d’opération raster de premier plan spécifié par dwRop doit être appliqué à cet emplacement. La valeur 0 dans le masque indique que le code d’opération raster en arrière-plan spécifié par dwRop doit être appliqué à cet emplacement.

Si les opérations raster nécessitent une source, le rectangle de masque doit couvrir le rectangle source. Si ce n’est pas le cas, la fonction échoue. Si les opérations raster ne nécessitent pas de source, le rectangle de masque doit couvrir le rectangle de destination. Si ce n’est pas le cas, la fonction échoue.

Si une rotation ou une transformation de cisaillement est en vigueur pour le contexte de l’appareil source lorsque cette fonction est appelée, une erreur se produit. Toutefois, d’autres types de transformation sont autorisés.

Si les formats de couleurs des bitmaps source, de modèle et de destination diffèrent, cette fonction convertit le modèle ou le format source, ou les deux, pour qu’il corresponde au format de destination.

Si la bitmap du masque n’est pas une bitmap monochrome, une erreur se produit.

Lorsqu’un métafichier amélioré est enregistré, une erreur se produit (et la fonction retourne FALSE) si le contexte d’appareil source identifie un contexte d’appareil de métafichier amélioré.

Tous les appareils ne prennent pas en charge la fonction MaskBlt . Une application doit appeler la fonction GetDeviceCaps avec le paramètre nIndex comme RC_BITBLT pour déterminer si un appareil prend en charge cette fonction.

Si aucune bitmap de masque n’est fournie, cette fonction se comporte exactement comme BitBlt, à l’aide du code d’opération raster au premier plan.

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

En cas d’utilisation dans un système à plusieurs moniteurs, hdcSrc et hdcDest doivent faire référence au même appareil, sinon la fonction échoue. Pour transférer des données entre les contrôleurs de domaine pour différents appareils, convertissez la bitmap de mémoire (bitmap compatible, ou DDB) en DIB en appelant GetDIBits. Pour afficher la DIB sur le deuxième appareil, appelez SetDIBits ou StretchDIBits.

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

BitBlt

Fonctions bitmap

Vue d’ensemble des bitmaps

GetDIBits

GetDeviceCaps

PlgBlt

SetDIBits

StretchBlt

StretchDIBits