Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB5,VB6
Expertise: Intermediate
Oct 27, 2001



Building the Right Environment to Support AI, Machine Learning and Deep Learning

BackgroundHorizontalGradient - Paint an horizontal gradient background

Private Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As Long

' Paint an horizontal gradient
' STARTCOLOR is the starting color (applied to left border)
' ENDCOLOR is the ending color (applied to right border)
' NUMSTEPS is the optional number of stripes (default is 256)

' Example: a gradient from black to blue
'   BackgroundHorizontalGradient Form1, 0, &HFF0000

Sub BackgroundHorizontalGradient(frm As Form, ByVal startColor As Long, _
    ByVal endColor As Long, Optional ByVal numSteps As Integer = 256)
    Dim startRed As Integer, startGreen As Integer, startBlue As Integer
    Dim deltaRed As Integer, deltaGreen As Integer, deltaBlue As Integer
    Dim x As Single, dx As Single
    Dim stp As Long
    ' Split the start color into its RGB components
    startRed = startColor And &HFF
    startGreen = (startColor And &HFF00&) \ 256
    startBlue = (startColor And &HFF0000) \ 65536
    ' Split the end color into its RGB components
    deltaRed = (endColor And &HFF&) - startRed
    deltaGreen = (endColor And &HFF00&) \ 256 - startGreen
    deltaBlue = (endColor And &HFF0000) \ 65536 - startBlue
    RealizePalette frm.hdc
    ' Eval width of each block
    dx = frm.ScaleWidth / numSteps
    For stp = 0 To numSteps - 1
        frm.Line (x, 0)-(x + dx, frm.ScaleHeight), RGB(startRed + (deltaRed * _
            stp) \ numSteps, startGreen + (deltaGreen * stp) \ numSteps, _
            startBlue + (deltaBlue * stp) \ numSteps), BF
        x = x + dx
End Sub
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date