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 |