vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik & Zeichnen22.03.05
AlphaBlend-Funktion

Diese Funktion kopiert ein Bitmap von einem Device auf ein anderes Device, wobei ein Alphawert angegeben werden kann, der das Bitmap durchscheinen lässt.

Betriebssystem:  Win98, WinNT 4.0, Win2000, WinMEViews:  16.559 

Deklaration:

Declare Function AlphaBlend Lib "msimg32.dll" ( _
  ByVal hdcDest As Long, _
  ByVal xDest As Long, _
  ByVal yDest As Long, _
  ByVal WidthDest As Long, _
  ByVal HeightDest As Long, _
  ByVal hdcSrc As Long, _
  ByVal xSrc As Long, _
  ByVal ySrc As Long, _
  ByVal WidthSrc As Long, _
  ByVal HeightSrc As Long, _
  ByVal Blendfunc As Long) As Long

Beschreibung:
Diese Funktion kopiert ein Bitmap von einem Device auf ein anderes Device, wobei ein Alphawert angegeben werden kann, der das Bitmap durchscheinen lässt.

Parameter:
hdcDestErwartet den Devicekontext des Ziels, auf dem das Quellbitmap kopiert wird.
xDestErwartet die horizontale Koordinate, ander das Quellbitmap auf dem Ziel positioniert werden soll.
yDestErwartet die vertikale Koordinate, ander das Quellbitmap auf dem Ziel positioniert werden soll.
WidthDestErwartet die neue Breite des Quellbitmaps.
HeightDestErwartet die neue Höhedes Quellbitmaps.
hdcSrcErwartet den Devicekontext des Gerätes, das das Quellbitmap enthält.
xSrcErwartet die horizontale Koordinate, von der aus das Quellbitmap kopiert werden soll.
ySrcErwartet die vertikale Koordinate, von der aus das Quellbitmap kopiert werden soll.
WidthSrcErwartet die Breite des Quellbitmaps, die kopiert werden soll.
HeightSrcErwartet die Höhe des Quellbitmaps, die kopiert werden soll.
BlendfuncErwartet eine BLENDFUNCTION-Struktur, die gefüllt ist mit den Optionen der Blendoperation.

Rückgabewert:
Ist die Funktion erfolgreich, so ist die Rückgabe ein Wert "ungleich 0", andernfalls wird derWert "0" zurückgegeben. Unter Windows NT, 2000 und XP können Sie die GetLastError-Funktion für erweiterte Fehlerinformationen aufrufen.

Beispiel:

Private Declare Function AlphaBlend Lib "msimg32.dll" ( _
  ByVal hdcDest As Long, _
  ByVal xDest As Long, _
  ByVal yDest As Long, _
  ByVal WidthDest As Long, _
   ByVal HeightDest As Long, _
  ByVal hdcSrc As Long, _
  ByVal xSrc As Long, _
  ByVal ySrc As Long, _
  ByVal WidthSrc As Long, _
  ByVal HeightSrc As Long, _
  ByVal Blendfunc As Long) As Long
Private Declare Sub MoveMemory Lib "kernel32.dll" _
  Alias "RtlMoveMemory"  ( _
  Destination As Any, _
  Source As Any, _
  ByVal Length As Long)
 
Private Type BLENDFUNCTION
  BlendOp As Byte
  BlendFlags As Byte
  SourceConstantAlpha As Byte
  AlphaFormat As Byte
End Type
 
' BlendFunction BlendOp-Konstante
Private Const AC_SRC_OVER = &H0 ' die Quelle wird über dem Ziel gezeichnet
 
' 'BlendFunction AlphaFormat-Konstante
Private Const AC_SRC_ALPHA = &H1 ' das Quellbitmap wurde schon mit dem Alphawert multipliziert
' Bildfelder einstellen
Private Sub Form_Load()
  Picture1.ScaleMode = vbPixels
  Picture1.AutoRedraw = True
  Picture2.ScaleMode = vbPixels
  Picture2.AutoRedraw = True
End Sub
' Alphablending starten
Private Sub Command1_Click()
  Dim Retval As Long, LBF As Long, BF As BLENDFUNCTION
 
  ' Struktur mit Blendingwerten füllen
  With BF
    .BlendOp = AC_SRC_OVER
    .SourceConstantAlpha = 128
  End With
 
    ' Struktur in eine Long-Variable kopieren
  Call MoveMemory(LBF, BF, Len(BF))
 
  ' Alphablending-Operation durchführen
  With Picture1
    Retval = AlphaBlend(Picture2.hDC, 0, 0, Picture2.ScaleWidth,  _
    Picture2.ScaleHeight, .hDC, 0, 0, .ScaleWidth, .ScaleHeight, LBF)
    Picture2.Refresh
    If Retval = 0 Then
      MsgBox "Das Alphablending ist fehlgeschlagen"
    End If
  End With
End Sub

Diese Seite wurde bereits 16.559 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel