MaskBlt-Funktion (wingdi.h)
Die MaskBlt-Funktion kombiniert die Farbdaten für die Quell- und Ziel-Bitmaps mithilfe des angegebenen Masken- und Rastervorgangs.
Syntax
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
);
Parameter
[in] hdcDest
Ein Handle für den Zielgerätekontext.
[in] xDest
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.
[in] yDest
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.
[in] width
Die Breite des Zielrechtecks und der Quellbitbitte in logischen Einheiten.
[in] height
Die Höhe des Zielrechtecks und der Quellbitbitte in logischen Einheiten.
[in] hdcSrc
Ein Handle für den Gerätekontext, aus dem die Bitmap kopiert werden soll. Er muss null sein, wenn der dwRop-Parameter einen Rastervorgang angibt, der keine Quelle enthält.
[in] xSrc
Die x-Koordinate in logischen Einheiten der oberen linken Ecke der Quellbitbitte.
[in] ySrc
Die y-Koordinate in logischen Einheiten der oberen linken Ecke der Quellbitbitte.
[in] hbmMask
Ein Handle für die bitmap der monochromen Maske in Kombination mit der Farbbittebit im Kontext des Quellgeräts.
[in] xMask
Der horizontale Pixeloffset für die durch den hbmMask-Parameter angegebene Maskenbitbit.
[in] yMask
Der vertikale Pixeloffset für die durch den hbmMask-Parameter angegebene Maskenbitbit.
[in] rop
Die Vordergrund- und Hintergrund-RoPs (Ternary Raster Operation Codes), die die Funktion verwendet, um die Kombination aus Quell- und Zieldaten zu steuern. Der Hintergrund-Rastervorgangscode wird im Byte mit hoher Ordnung des Worts mit hoher Ordnung dieses Werts gespeichert. der Vordergrund-Raster-Vorgangscode wird im Byte mit niedriger Ordnung des Worts mit hoher Ordnung dieses Werts gespeichert. Das Wort mit niedriger Reihenfolge dieses Werts wird ignoriert und sollte 0 (null) sein. Das Makro MAKEROP4 erstellt solche Kombinationen von Vordergrund- und Hintergrund-Rastervorgangscodes.
Eine Erläuterung von Vordergrund und Hintergrund im Kontext dieser Funktion finden Sie im folgenden Abschnitt Hinweise.
Eine Liste der allgemeinen Rastervorgangscodes (RoPs) finden Sie in der BitBlt-Funktion . Beachten Sie, dass der CAPTUREBLT-ROP in der Regel nicht zum Drucken von Gerätekontexten verwendet werden kann.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.
Hinweise
Die MaskBlt-Funktion verwendet geräteabhängige Bitmaps.
Der Wert 1 in der von hbmMask angegebenen Maske gibt an, dass der von dwRop angegebene Vordergrund-Rastervorgangscode an dieser Stelle angewendet werden soll. Der Wert 0 in der Maske gibt an, dass der von dwRop angegebene Hintergrund-Rastervorgangscode an dieser Stelle angewendet werden soll.
Wenn die Rastervorgänge eine Quelle erfordern, muss das Maskenrechteck das Quellrechteck abdecken. Wenn dies nicht der Fall ist, schlägt die Funktion fehl. Wenn für die Rastervorgänge keine Quelle erforderlich ist, muss das Maskenrechteck das Zielrechteck abdecken. Wenn dies nicht der Fall ist, schlägt die Funktion fehl.
Wenn beim Aufrufen dieser Funktion eine Drehungs- oder Schertransformation für den Kontext des Quellgeräts wirksam ist, tritt ein Fehler auf. Andere Transformationstypen sind jedoch zulässig.
Wenn sich die Farbformate der Quell-, Muster- und Zielbitbits unterscheiden, konvertiert diese Funktion das Muster- oder Quellformat oder beides, um dem Zielformat zu entsprechen.
Wenn es sich bei der Masken-Bitmap nicht um eine monochrome Bitmap handelt, tritt ein Fehler auf.
Wenn eine erweiterte Metadatei aufgezeichnet wird, tritt ein Fehler auf (und die Funktion gibt FALSE zurück), wenn der Kontext des Quellgeräts einen erweiterten Metadatei-Gerätekontext identifiziert.
Nicht alle Geräte unterstützen die MaskBlt-Funktion . Eine Anwendung sollte die GetDeviceCaps-Funktion mit dem nIndex-Parameter als RC_BITBLT aufrufen, um zu bestimmen, ob ein Gerät diese Funktion unterstützt.
Wenn keine Maskenbit bereitgestellt wird, verhält sich diese Funktion mit dem Vordergrund-Rastervorgangscode genau wie BitBlt.
ICM: Beim Auftreten von Blits wird keine Farbverwaltung durchgeführt.
Bei Verwendung in einem System mit mehreren Monitoren müssen sowohl hdcSrc als auch hdcDest auf dasselbe Gerät verweisen, andernfalls schlägt die Funktion fehl. Um Daten zwischen DCs für verschiedene Geräte zu übertragen, konvertieren Sie die Speicherbitbitbits (kompatible Bitmap oder DDB) in einen DIB, indem Sie GetDIBits aufrufen. Um den DIB auf dem zweiten Gerät anzuzeigen, rufen Sie SetDIBits oder StretchDIBits auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wingdi.h (windows.h einschließen) |
Bibliothek | Gdi32.lib |
DLL | Gdi32.dll |