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 |