BackgroundCircularGradient – Paint a circular background gradient

Private Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As Long' Paint a circular gradient'' STARTCOLOR is the starting color (applied to the corner)' ENDCOLOR is the ending color (applied to the center point)' NUMSTEPS is the optional number of stripes (default is 256)' XC, XY are the coordinates of the center (default is the center of the form)'' Example: a vertical gradient from blue to Black'   BackgroundCircularGradient Me, &HFF0000, 0, , 500, 200Sub BackgroundCircularGradient(frm As Form, ByVal startColor As Long, _    ByVal endColor As Long, Optional ByVal numSteps As Integer = 256, _    Optional ByVal xc As Single = -1, Optional ByVal yc As Single = -1)    Dim startRed As Integer, startGreen As Integer, startBlue As Integer    Dim deltaRed As Integer, deltaGreen As Integer, deltaBlue As Integer    Dim r As Single, dr As Single    Dim stp As Long        Dim saveFillColor As Long    Dim saveFillStyle As Long        ' Evaluate the coordinates of the center if omitted.    If xc = -1 And yc = -1 Then        xc = frm.ScaleWidth / 2        yc = frm.ScaleHeight / 2    End If        ' The radius of the circle is equal to the distance from the farthest corner    If xc < frm.ScaleWidth / 2 Then        If yc < frm.ScaleHeight / 2 Then            r = Sqr((frm.ScaleWidth - xc) ^ 2 + (frm.ScaleHeight - yc) ^ 2)        Else            r = Sqr((frm.ScaleWidth - xc) ^ 2 + yc ^ 2)        End If    Else        If yc < frm.ScaleHeight / 2 Then            r = Sqr(xc ^ 2 + (frm.ScaleHeight - yc) ^ 2)        Else            r = Sqr(xc ^ 2 + yc ^ 2)        End If    End If        ' 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 the delta of the radius at each step    dr = r / numSteps        ' Remember current fill settings.    saveFillColor = Me.FillColor    saveFillStyle = Me.FillStyle    ' enfore solid filling    Me.FillStyle = vbSolid        ' Draw all circles, going from the outside in.    For stp = 0 To numSteps - 1        Me.FillColor = RGB(startRed + (deltaRed * stp)  numSteps, _            startGreen + (deltaGreen * stp)  numSteps, _            startBlue + (deltaBlue * stp)  numSteps)        frm.Circle (xc, yc), r, Me.FillColor        r = r - dr    Next        ' Restore original settings.    Me.FillColor = saveFillColor    Me.FillStyle = saveFillStyleEnd Sub

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

The Latest

microsoft careers

Top Careers at Microsoft

Microsoft has gained its position as one of the top companies in the world, and Microsoft careers are flourishing. This multinational company is efficiently developing popular software and computers with other consumer electronics. It is a dream come true for so many people to acquire a high paid, high-prestige job

your company's audio

4 Areas of Your Company Where Your Audio Really Matters

Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a

chrome os developer mode

How to Turn on Chrome OS Developer Mode

Google’s Chrome OS is a popular operating system that is widely used on Chromebooks and other devices. While it is designed to be simple and user-friendly, there are times when users may want to access additional features and functionality. One way to do this is by turning on Chrome OS