Freigeben über


StretchBlt-Funktion (wingdi.h)

Die StretchBlt-Funktion kopiert eine Bitmap aus einem Quellrechteck in ein Zielrechteck und dehnt oder komprimiert die Bitmap, um die Abmessungen des Zielrechtecks anzupassen, falls erforderlich. Das System dehnt oder komprimiert die Bitmap entsprechend dem derzeit im Kontext des Zielgeräts festgelegten Dehnungsmodus.

Syntax

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [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] wDest

Die Breite des Zielrechtecks in logischen Einheiten.

[in] hDest

Die Höhe des Zielrechtecks in logischen Einheiten.

[in] hdcSrc

Ein Handle für den Quellgerätekontext.

[in] xSrc

Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

[in] ySrc

Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.

[in] wSrc

Die Breite des Quellrechtecks in logischen Einheiten.

[in] hSrc

Die Höhe des Quellrechtecks in logischen Einheiten.

[in] rop

Der auszuführende Rastervorgang. Rastervorgangscodes definieren, wie das System Farben in Ausgabevorgängen kombiniert, die einen Pinsel, eine Quell-Bitmap und eine Ziel-Bitmap umfassen.

Eine Liste allgemeiner Rastervorgangscodes (ROPs) finden Sie unter BitBlt . Beachten Sie, dass der CAPTUREBLT-ROP in der Regel nicht für Druckgerätekontexte 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

StretchBlt dehnt oder komprimiert die Quell-Bitmap im Arbeitsspeicher und kopiert das Ergebnis dann in das Zielrechteck. Diese Bitmap kann entweder eine kompatible Bitmap (DDB) oder die Ausgabe von CreateDIBSection sein. Die Farbdaten für Muster- oder Zielpixel werden nach dem Dehnungs- oder Komprimierungsvorgang zusammengeführt.

Wenn eine erweiterte Metadatei aufgezeichnet wird, tritt ein Fehler auf (und die Funktion gibt FALSE zurück), wenn der Kontext des Quellgeräts einen Gerätekontext der erweiterten Metadatei identifiziert.

Wenn für den angegebenen Rastervorgang ein Pinsel erforderlich ist, verwendet das System den Pinsel, der derzeit im Kontext des Zielgeräts ausgewählt ist.

Die Zielkoordinaten werden mithilfe der Transformation transformiert, die derzeit für den Zielgerätekontext angegeben ist. Die Quellkoordinaten werden mithilfe der Transformation transformiert, die derzeit für den Quellgerätekontext angegeben ist.

Wenn die Quelltransformation eine Drehung oder Einen Scher aufweist, tritt ein Fehler auf.

Wenn Ziel-, Quell- und Muster-Bitmaps nicht das gleiche Farbformat aufweisen, konvertiert StretchBlt die Quell- und Muster-Bitmaps so, dass sie der Ziel-Bitmap entsprechen.

Wenn StretchBlt eine monochrome Bitmap in eine Farbbitbit konvertieren muss, legt es weiße Bits (1) auf die Hintergrundfarbe und schwarze Bits (0) auf die Vordergrundfarbe fest. Um eine Farb bitmap in eine monochrome Bitmap zu konvertieren, legt sie Pixel, die der Hintergrundfarbe entsprechen, auf Weiß (1) und alle anderen Pixel auf Schwarz (0) fest. Die Vordergrund- und Hintergrundfarben des Gerätekontexts mit Farbe werden verwendet.

StretchBlt erstellt ein Spiegel Bild einer Bitmap, wenn die Zeichen der Parameter nWidthSrc und nWidthDest oder wenn sich die Parameter nHeightSrc und nHeightDest unterscheiden. Wenn nWidthSrc und nWidthDest unterschiedliche Vorzeichen aufweisen, erstellt die Funktion ein Spiegel Bild der Bitmap entlang der x-Achse. Wenn nHeightSrc und nHeightDest unterschiedliche Vorzeichen aufweisen, erstellt die Funktion ein Spiegel Bild der Bitmap entlang der y-Achse.

Nicht alle Geräte unterstützen die StretchBlt-Funktion . Weitere Informationen finden Sie unter GetDeviceCaps.

ICM: Bei einem Spaltvorgang wird keine Farbverwaltung ausgeführt.

Wenn sie in einem System mit mehreren Monitoren verwendet werden, 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 Speicher-Bitmap in einen DIB, indem Sie GetDIBits aufrufen. Um den DIB auf dem zweiten Gerät anzuzeigen, rufen Sie SetDIBits oder StretchDIBits auf.

Beispiele

Ein Beispiel finden Sie unter Skalieren eines Images.

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 (einschließlich Windows.h)
Bibliothek Gdi32.lib
DLL Gdi32.dll

Weitere Informationen

Bitblt

Bitmapfunktionen

Übersicht über Bitmaps

CreateDIBSection

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits