Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0166: Schnellen Farbverlauf erstellen (Win 98)

 von 

Beschreibung 

Für schnelle Farbverläufe bietet Windows 98 eine eigene und recht komfortable Funktion in der msimg32 Bibliothek.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

GradientFill (GradientFillRect)

Download:

Download des Beispielprojektes [2,15 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------

Option Explicit

Private Declare Function GradientFillRect Lib "msimg32" _
        Alias "GradientFill" (ByVal hdc As Long, pVertex _
        As TRIVERTEX, ByVal dwNumVertex As Long, pMesh _
        As GRADIENT_RECT, ByVal dwNumMesh As Long, ByVal _
        dwMode As Long) As Long

Private Type TRIVERTEX
  x As Long
  y As Long
  Red As Integer
  Green As Integer
  Blue As Integer
  Alpha As Integer
End Type

Private Type GRADIENT_RECT
  UpperLeft As Long
  LowerRight As Long
End Type

Const GRADIENT_FILL_RECT_H = &H0
Const GRADIENT_FILL_RECT_V = &H1
Const GRADIENT_FILL_TRIANGLE = &H2
Const GRADIENT_FILL_OP_FLAG = &HFF

Private Sub Form_Load()
  Me.ScaleMode = vbPixels
End Sub

Private Sub Form_Paint()
  Call PaintGradient
End Sub

Private Sub Form_Resize()
  Call PaintGradient
End Sub

Private Sub PaintGradient()
  Dim Vertex(0 To 1) As TRIVERTEX
  Dim Rect As GRADIENT_RECT

    With Vertex(0)
      .x = 0
      .y = 0
      .Red = CCol(255)
      .Green = 0
      .Blue = 0
      .Alpha = 0
    End With

    With Vertex(1)
      .x = Me.ScaleWidth
      .y = Me.ScaleHeight / 2
      .Red = 0
      .Green = 0
      .Blue = CCol(255)
      .Alpha = 0
    End With

    Rect.UpperLeft = 0
    Rect.LowerRight = 1
    GradientFillRect Me.hdc, Vertex(0), 2, Rect, 1, GRADIENT_FILL_RECT_H
    
    With Vertex(0)
      .x = 0
      .y = Me.ScaleHeight / 2
      .Red = CCol(255)
      .Green = 0
      .Blue = 0
      .Alpha = 0
    End With

    With Vertex(1)
      .x = Me.ScaleWidth
      .y = Me.ScaleHeight
      .Red = 0
      .Green = CCol(255)
      .Blue = 0
      .Alpha = 0
    End With

    Rect.UpperLeft = 0
    Rect.LowerRight = 1
    GradientFillRect Me.hdc, Vertex(0), 2, Rect, 1, GRADIENT_FILL_RECT_V
End Sub

Private Function CCol(ByVal Col As Byte) As Integer
If Col > &H7F Then
     CCol = (Col * &H100&) - &H10000
Else
     CCol = Col * &H100&
End If
End Function
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 2 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Healy am 08.11.2005 um 15:20

Ich kann den Tipp nicht entpacken. Anscheinend ist die ZIP defekt.

Kommentar von Mark am 23.12.2004 um 22:51

Beim Entpacken des Tipps erhalte ich folgende Fehler:

! F:\ActiveVB\tipp0166.zip: Konnte Schnellen Farbverlauf erstellen Win \Form1.frm nicht erstellen
Das System kann den angegebenen Pfad nicht finden.
! F:\ActiveVB\tipp0166.zip: Konnte Schnellen Farbverlauf erstellen Win \Project1.vbp nicht erstellen
Das System kann den angegebenen Pfad nicht finden.
! F:\ActiveVB\tipp0166.zip: Konnte Schnellen Farbverlauf erstellen Win \www.ActiveVB.de.url nicht erstellen
Das System kann den angegebenen Pfad nicht finden.

Bitte den Tipp noch mal neu packen :) Danke