C'est tout bete et pas super rapide, mais ça peut etre utile :
allez voir l'apercu qui parle de lui-meme (enfin j'espère)
en gros :
on a un dégradé en 2 dimensions des couleurs rouge et verte, en fonction d'une couleur bleue qu'on choisit à droite, dans un sélecteur dégradé du bleu au noir...
on peut aussi choisir les couleurs individuellement numériquement ou visuellement
Source / Exemple :
Sub Colorer()
'voilà deux méthodes très lentes :
' For i = 0 To 255
' For j = 0 To 255
' 'très lent :
' SetPixel chCoul.hdc, i, j, RVB(i, j, Bleu)
' 'hyper lent : (cad encore plus lent que tres lent)
' 'chCoul.PSet (i, j), RVB(i, j, Bleu)
' Next j
' Next i
'et la méthode rapide :
'un peu plus compliquée...
Dim gRect As GRADIENT_RECT
Dim triVert(1) As TRIVERTEX 'deux trivertex
Dim noLigne As Long
For noLigne = 0 To chCoul.Height
'rouge=noLigne
'Vert = dégradé dans la ligne
'bleu = 3eme dimension
'trivert 2 : couleur et prosition
With triVert(0)
.X = 0
.Y = noLigne
.Alpha = 0&
.Red = LongToUShort(noLigne * 256#)
.Green = LongToUShort(0)
.Blue = LongToUShort(Bleu * 256#)
End With
'trivert 1 : couleur et position
With triVert(1)
.X = chCoul.Width
.Y = noLigne + 1
.Alpha = 0&
.Red = LongToUShort(noLigne * 256#)
.Green = LongToUShort(255# * 256#)
.Blue = LongToUShort(Bleu * 256#)
End With
'définit l'index de triVert correspondant :
gRect.UpperLeft = 0 'au coin supérieur gauche
gRect.LowerRight = 1 'au coin inférieur droit
GradientFillRect chCoul.hdc, triVert(0), 2, gRect, 1, 0
Next noLigne
curCoul.ZOrder 0
curCoul.Visible = True
curCoul.Move curCoul.Left
End Sub
Conclusion :
Bon, alors pour ceux qui ont vu le prog à sa première version, il y a beaucoup de changements... et le problème de la vitesse est réglé (merci Renfield)
bonne prog !
Helkanen
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.