Ce code est à placer dans une feuille (Form1) avec un bouton de commande (Command1). Copier le code
dans la feuille et lancer le programme. Le dégradé apparaîtra sur la feuille lors d'un clic sur le
bouton de commande.
Source / Exemple :
'Fonction API
Private Declare Function GdiGradientFillRect Lib "gdi32" Alias "GdiGradientFill" (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
'Types personnalisés
Private Type TRIVERTEX 'Le type TRIVERTEX sert à définir les paramètres du dégradé.
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
Private Sub Command1_Click()
Dim vert(1) As TRIVERTEX 'un dégradé défini par deux couleurs a des paramètres dans les variavles vert(0) et vert(1)
Dim gRect As GRADIENT_RECT
'Il faut paramétrer les extrémums du dégradé :
'ici le dégradé ira du noir au bleu
'Malheureusement les couleurs ne fonctionnent pas de la même manière que RGB. Il faut les convertir
'd'abord, ce qui est fait par la fonction TransfCol plus bas.
'Grâce à cette fonction, vous pouvez rentrer les couleurs comme avant juste en appelant la fonction
With vert(0)
.x = 0
.y = 0
.Red = Transfcol(0)
.Green = Transfcol(0)
.Blue = Transfcol(0)
.Alpha = Transfcol(0)
End With
With vert(1)
.x = Me.ScaleWidth
.y = Me.ScaleHeight
.Red = Transfcol(0)
.Green = Transfcol(0)
.Blue = Transfcol(255)
.Alpha = Transfcol(0)
End With
gRect.UpperLeft = 1: gRect.LowerRight = 0
GdiGradientFillRect Me.hdc, vert(0), 2, gRect, 1, 0
'le 2 après vert(0) correspond au nombre de variables de type TRIVERTEX
'le 1 après gRect correspond au nombre de variables de type GRADIENT_RECT
'la dernière valeur correspond au sens du dégradé : 0=Horizontal, 1=Vertical.
End Sub
Private Function TransfCol(ByVal Col As Integer) As Double
If Col = 0 Then
TransfCol = 0
ElseIf Col > 127 Then
a = 256 - Col
TransfCol = -(256 * a)
Else
a = Col
TransfCol = 256 * a
End If
End Function
Conclusion :
Bientôt sera ajouté le code d'un contrôle barre de vie faisant un dégradé.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.