Share via


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

Weitere Informationen

Bitblt

Bitmapfunktionen

Übersicht über Bitmaps

GetDIBits

GetDeviceCaps

PlgBlt

SetDIBits

StretchBlt

StretchDIBits