Freigeben über


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.

Wert Bedeutung
SCHWÄRZE
Füllt das Zielrechteck mithilfe der Farbe aus, die index 0 in der physischen Palette zugeordnet ist. (Bei der physikalischen Standardpalette ist dies die Farbe Schwarz.)
CAPTUREBLT
Schließt alle Fenster ein, die im resultierenden Bild über dem Fenster angeordnet sind. Standardmäßig enthält das Bild nur Ihr Fenster. Beachten Sie, dass dies i. d. R. nicht zum Drucken von Gerätekontexten verwendet werden kann.
DSTINVERT
Invertiert das Zielrechteck.
MERGECOPY
Führt die Farben des Quellrechtecks mithilfe des booleschen AND-Operators mit dem derzeit in hdcDest ausgewählten Pinsel zusammen.
MERGEPAINT
Führt die Farben des invertierten Quellrechtecks mithilfe des booleschen OR-Operators mit den Farben des Zielrechtecks zusammen.
NOMIRRORBITMAP
Verhindert, dass die Bitmap gespiegelt wird.
NOTSRCCOPY
Kopiert das invertierte Quellrechteck in das Ziel.
NOTSRCERASE
Kombiniert die Farben der Quell- und Zielrechtecke mithilfe des booleschen OR-Operators und invertiert dann die resultierende Farbe.
PATCOPY
Kopiert den derzeit in hdcDest ausgewählten Pinsel in die Zielbitbitbit.
PATINVERT
Kombiniert die Farben des derzeit in hdcDest ausgewählten Pinsels mit den Farben des Zielrechtecks mithilfe des booleschen XOR-Operators.
PATPAINT
Kombiniert die Farben des derzeit in hdcDest ausgewählten Pinsels mit den Farben des umgekehrten Quellrechtecks mithilfe des booleschen OR-Operators. Das Ergebnis dieses Vorgangs wird mithilfe des booleschen OR-Operators mit den Farben des Zielrechtecks kombiniert.
SRCAND
Kombiniert die Farben der Quell- und Zielrechtecke mithilfe des booleschen AND-Operators.
SRCCOPY
Kopiert das Quellrechteck direkt in das Zielrechteck.
SRCERASE
Kombiniert die invertierten Farben des Zielrechtecks mit den Farben des Quellrechtecks mithilfe des booleschen AND-Operators.
SRCINVERT
Kombiniert die Farben der Quell- und Zielrechtecke mithilfe des booleschen XOR-Operators.
SRCPAINT
Kombiniert die Farben der Quell- und Zielrechtecke mithilfe des booleschen OR-Operators.
WEIßE
Füllt das Zielrechteck mit der Farbe aus, die Index 1 in der physischen Palette zugeordnet ist. (Bei der physikalischen Standardpalette ist dies die Farbe Weiß.)

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

Weitere Informationen

Bitmapfunktionen

Übersicht über Bitmaps

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

StretchBlt

StretchDIBits