Rubrik: Grafik & Zeichnen | 13.07.01 |
StretchBlt-Funktion Kopiert ein Bitmap aus einem "Speicher Device Kontext" (z.B. eine Form oder ein Bildfeld) in einen anderen Device-Kontext. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 13.187 |
Deklaration:
Declare Function StretchBlt Lib "gdi32.dll" ( _ ByVal hdcDest As Long, _ ByVal nXDest As Long, _ ByVal nYDest As Long, _ ByVal nDestWidth As Long, _ ByVal nDestHeight As Long, _ ByVal hdcSrc As Long, _ ByVal XSrc As Long, _ ByVal YSrc As Long, _ ByVal hSrcWidth As Long, _ ByVal nSrcHeight As Long, _ ByVal dwRop As Long) As Long
Beschreibung:
StretchBlt kopiert ein Bitmap aus einem "Speicher Device Kontext" (z.B. eine Form oder ein Bildfeld) in einen anderen Device-Kontext. Zusätzlich lassen die Ziel-Koordinaten so festlegen, daß die Kopie des Bildes verkleinert/vergrößert oder auch verzerrt dargestellt wird.
Parameter:
hdcDest | Gerätekontext des Zielobjekts. |
nXDest | Horizontale Koordinate des Zielrechtecks |
nYDest | Vertikale Koordinate des Zielrechtecks |
nDestWidth | "neue" Breite des Bitmaps |
nDestHeight | "neue" Höhe des Bitmaps |
hdcSrc | Gerätekontext des Quellobjekts (aus dem das Bitmap kopiert wird) |
XSrc | Horizontale Koordinate von welcher Position aus das Bitmap kopiert werden soll |
YSrc | Vertikale Koordinate von welcher Position aus das Bitmap kopiert werden soll |
WidthSrc | Legt die Breite des Ausschnittes des Quell-Bitmaps fest, welcher in das Zielrechteck kopiert werden soll |
HeightSrc | Legt die Höhe des Ausschnittes des Quell-Bitmaps fest, welcher in das Zielrechteck kopiert werden soll |
dwRop | Legt fest, wie die Farbdaten des Quell-Bildes mit den Farbdaten des Ziel-Rechtecks kombiniert werden, um die endgültige Farbe zu erhalten. |
dwRop Konstanten:
' Kopiert den Inhalt der Quelle in das Ziel Const SRCCOPY = &HCC0020 ' Kombiniert die Farben des Zieles und der Quelle mit Hilfe des AND-Operators Const SRCAND = &H8800C6 ' Kombiniert die invertierten Farben des Zieles mit den Farben der Quelle ' mit Hilfe des AND-Operators Const SRCERASE = &H440328 ' Kombiniert die Farben des Zieles und der Quelle mit Hilfe des XOR-Operators Const SRCINVERT = &H660046 ' Kombiniert die Farben des Zieles und der Quelle mit Hilfe des OR-Operators Const SRCPAINT = &HEE0086
Rückgabewert:
War der Funktionsaufruf erfolgreich, wir ein Wert ungleich 0 zurückgegeben. Tritt ein Fehler auf (z.B. aufgrund ungültiger Koordinaten-Angaben oder ungültige Device-Kontext), ist der Rückgabewert 0.
Beispiel:
Private Declare Function StretchBlt Lib "gdi32.dll" ( _ ByVal hdcDest As Long, _ ByVal nXDest As Long, _ ByVal nYDest As Long, _ ByVal nDestWidth As Long, _ ByVal nDestHeight As Long, _ ByVal hdcSrc As Long, _ ByVal nXSrc As Long, _ ByVal nYSrc As Long, _ ByVal hSrcWidth As Long, _ ByVal nSrcHeight As Long, _ ByVal dwRop As Long) As Long Private Const SRCCOPY = &HCC0020 Private Const SRCAND = &H8800C6 Private Const SRCERASE = &H440328 Private Const SRCINVERT = &H660046 Private Const SRCPAINT = &HEE0086
' Scalemode auf Pixel setzen Private Sub Form_Load () Me.ScaleMode = vbPixels End Sub
' Kopiert ein Bitmap von einem Bildfeld in ein anderes, wobei das Zielbild ' 10 Pixel in der Höhe und Breite kleiner ist. Desweiteren hat das Bitmap einen ' Randabstand von 5 Pixel, jeweils oben und links. Private Sub Command1_Click () Dim Retval As Long With Picture1 Retval = StretchBlt(Picture2.hDC, 5, 5, .Width - 10, .Height - _ 10, .hDC, 0, 0, .Width, .Height, SRCINVERT) End With If Retval = 0 Then MsgBox "Ein Fehler ist aufgetreten. Waren alle Angaben korrekt?", _ vbCritical, "Fehler End If End Sub