Color chooser - un petit usercontrol pour choisir une couleur rvb

Description

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

Codes Sources

A voir également

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.