BitBlt-Funktion (wingdi.h)
Die BitBlt-Funktion führt eine Bitblockübertragung der Farbdaten aus, die einem Pixelrechteck aus dem angegebenen Quellgerätekontext entsprechen, in einen Zielgerätekontext.
Syntax
BOOL BitBlt(
[in] HDC hdc,
[in] int x,
[in] int y,
[in] int cx,
[in] int cy,
[in] HDC hdcSrc,
[in] int x1,
[in] int y1,
[in] DWORD rop
);
Parameter
[in] hdc
Ein Handle für den Zielgerätekontext.
[in] x
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.
[in] y
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks.
[in] cx
Die Breite der Quell- und Zielrechtecke in logischen Einheiten.
[in] cy
Die Höhe der Quell- und Zielrechtecke in logischen Einheiten.
[in] hdcSrc
Ein Handle für den Quellgerätekontext.
[in] x1
Die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.
[in] y1
Die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks.
[in] rop
Ein Rastervorgangscode. Diese Codes definieren, wie die Farbdaten für das Quellrechteck mit den Farbdaten für das Zielrechteck kombiniert werden sollen, um die endgültige Farbe zu erhalten.
Die folgende Liste enthält einige gängige Rastervorgangscodes.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
BitBlt führt nur Clipping auf dem Zieldomänencontroller durch.
Wenn eine Drehungs- oder Schertransformation im Kontext des Quellgeräts wirksam ist, gibt BitBlt einen Fehler zurück. Wenn andere Transformationen im Quellgerätekontext vorhanden sind (und eine entsprechende Transformation im Kontext des Zielgeräts nicht wirksam ist), wird das Rechteck im Kontext des Zielgeräts nach Bedarf gestreckt, komprimiert oder gedreht.
Wenn die Farbformate des Quell- und Zielgerätekontexts nicht übereinstimmen, konvertiert die BitBlt-Funktion das Quellfarbformat in das Zielformat.
Wenn eine erweiterte Metadatei aufgezeichnet wird, tritt ein Fehler auf, wenn der Kontext des Quellgeräts einen erweiterten Metadatei-Gerätekontext identifiziert.
Nicht alle Geräte unterstützen die BitBlt-Funktion . Weitere Informationen finden Sie im Eintrag RC_BITBLT Rasterfunktion in der GetDeviceCaps-Funktion sowie unter den folgenden Funktionen: MaskBlt, PlgBlt und StretchBlt.
BitBlt gibt einen Fehler zurück, wenn der Quell- und der Zielgerätekontext unterschiedliche Geräte darstellen. Um Daten zwischen DCs für verschiedene Geräte zu übertragen, konvertieren Sie die Speicherbitbitte in einen DIB, indem Sie GetDIBits aufrufen. Um den DIB auf dem zweiten Gerät anzuzeigen, rufen Sie SetDIBits oder StretchDIBits auf.
ICM: Beim Auftreten von Blits wird keine Farbverwaltung durchgeführt.
Beispiele
Im folgenden Codebeispiel wird die Verwendung von BitBlt veranschaulicht.
if (!BitBlt(hdcMemDC,
0, 0,
rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,
hdcWindow,
0, 0,
SRCCOPY))
{
MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);
goto done;
}
Informationen zum Anzeigen dieses Beispiels im Kontext finden Sie unter Erfassen eines Bilds.
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 |