Rubrik: Grafik & Zeichnen | 09.05.01 |
BitBlt-Funktion BitBlt kopiert die Grafik eines Device-Contextes (z.B. eine Form oder ein Bildfeld) in einen anderen Device-Kontext. | ||
Betriebssystem: Win95, Win98, WinNT, Win2000, WinME | Views: 23.325 |
Beschreibung:
BitBlt kopiert die Grafik eines Device-Contextes (z.B. eine Form oder ein Bildfeld) in einen anderen Device-Kontext. Es können noch zusätzliche Optionen festgelegt werden, wie z.B. das Invertieren der Farben. Wenn die Farbformate (16Bit, 24Bit, ect.) des Quell- und Ziel-Devices nicht übereinstimmen konvertiert BitBlt das Quell-Farbformat in das Ziel-Farbformat. Wenn sich eine Enhanced Metadatei in dem Quell-Device befindet, scheitert die Funktion, da das Quell-Device mit der Enhanced Metadatei einem Enhanced-Meta Device entspricht.
Deklaration:
Declare Function BitBlt Lib "gdi32.dll" ( _ ByVal hdcDest As Long, _ ByVal nXDest As Long, _ ByVal nYDest As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hdcSrc As Long, _ ByVal nXSrc As Long, _ ByVal nYSrc As Long, _ ByVal dwRop As Long) As Long
Parameter:
hdcDest | Erwartet den Device-Kontext des Objektes, welches dem Zielobjekt entspricht. Das Quell-Bitmap wird in dieses "geblittet". |
nXDest | Horizontale Koordinate zu dem das Zielbitmap geblittet werden soll |
nYDest | Vertikale Koordinate zu dem das Zielbitmap geblittet werden soll |
nWidth | Die neue Weite des Bitmaps. Wird ein Wert über oder unterhalb des Quellbitmaps angegeben so wird das Bitmap gestretcht (gedehnt) |
nHeight | Die neue Höhe des Bitmaps, wird ein Wert über oder unterhalb des Quellbitmaps angegeben so wird das Bitmap gestretcht (gedehnt) |
hdcSrc | Erwartet den Device-Kontext des Quell-Devices. Der Inhalt dieses Objektes wird in das Zielobjekt geblittet. |
nXSrc | Horizontale Koordinate, von welcher Position aus das Bitmap kopiert werden soll |
nYSrc | Vertikale Koordinate, von welcher Position aus das Bitmap kopiert werden soll |
dwRop | Eine der nachfolgend aufgeführten Konstanten |
dwRop Konstanten:
Const BLACKNESS = &H42 ' Füllt das Ziel mit der Farbe '0' der Paltte (meist schwarz) Const DSTINVERT = &H550009 ' Invertiert das Zielbitmap Const MERGECOPY = &HC000CA ' Verschmeltzt die Farben des Zieles mit dem Brush, welcher im Ziel ' gewählt ist, unter Benutzung des AND-Operators Const MERGEPAINT = &HBB0226 ' Verschmeltz die Farben des Zieles und der Quelle unter Benutzung des ' OR-Operators Const NOTSRCCOPY = &H330008 ' Kopiert das invertierte Quellbitmap ins Ziel-Device Const NOTSRCERASE = &H1100A6 ' Kombiniert die Quell- und Zeilfarben mit dem OR-Operator und invertiert diese Const PATCOPY = &HF00021 ' Kopiert den Brush, der in dem Ziel-Device vorhanden ist, in das Ziel-Device Const PATINVERT = &H5A0049 ' Kombinert die Farben des Ziel-Brushs mit den Farben des Zieles unter ' Benutzung des XOR-Operators Const PATPAINT = &HFB0A09 ' Kombiniert die Farben des Ziel-Brushs mit den invertierten Quell-Farbwerten unter Benutzung ' des OR-Operators. Das Ergebnis wird mit den Farben des Zieles kombiniert mit ' Hilfe des OR-Operators Const SRCCOPY = &HCC0020 ' Kopiert den Inhalt der Quelle in das Ziel Const SRCAND = &H8800C6 ' Kombiniert die Farben des Zieles und der Quelle mit Hilfe des AND-Operators Const SRCERASE = &H440328 ' Kombiniert die invertierten Farben des Zieles mit den Farben der Quelle ' mit Hilfe des AND-Operators Const SRCINVERT = &H660046 ' Kombiniert die Farben des Zieles und der Quelle mit Hilfe des XOR-Operators Const SRCPAINT = &HEE0086 ' Kombiniert die Farben des Zieles und der Quelle mit Hilfe des OR-Operators Const WHITENESS = &HFF0062 ' Füllt das Ziel mit der Farbe '1' der Paltte (meist weiß)
Rückgabewert:
War der Funktionsaufruf erfolgreich, wird ein Wert ungleich 0 zurückgegeben. , andernfalls Ist die Funktion erfolgreich so wird ein wert ungleich "0" zurück gegeben. Scheitert die Funktion (z.B. aufgrund falscher Angaben von Koordinaten), wird 0 zurückgegeben.
Beispiel:
Private Declare Function BitBlt Lib "gdi32.dll" ( _ ByVal hdcDest As Long, _ ByVal nXDest As Long, _ ByVal nYDest As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hdcSrc As Long, _ ByVal nXSrc As Long, _ ByVal nYSrc As Long, _ ByVal dwRop As Long) As Long Private Const BLACKNESS = &H42 Private Const DSTINVERT = &H550009 Private Const MERGECOPY = &HC000CA Private Const MERGEPAINT = &HBB0226 Private Const NOTSRCCOPY = &H330008 Private Const NOTSRCERASE = &H1100A6 Private Const PATCOPY = &HF00021 Private Const PATINVERT = &H5A0049 Private Const PATPAINT = &HFB0A09 Private Const SRCCOPY = &HCC0020 Private Const SRCAND = &H8800C6 Private Const SRCERASE = &H440328 Private Const SRCINVERT = &H660046 Private Const SRCPAINT = &HEE0086 Private Const WHITENESS = &HFF0062
' Kopiert den Inhalt eines Bildfeldes in ein anderes, ' wobei die Farben invertiert werden Private Sub Command1_Click () Dim Retval As Long With Picture2 Retval = BitBlt(.hDC, 0, 0, .Width, .Height, Picture1.hDC, 0, 0, SRCINVERT) End With If Retval = 0 Then MsgBox "Ein Fehler ist aufgetreten.", vbCritical, "Fehler" End If End Sub