Newsgroup: it.comp.lang.visual-basic
Titolo: Sfumare tra due colori...

Salve,
mi stò facendo una progress bar personale, quella del vb non è
brutta ma...tropo vista :) Non scriverò niente di sconvolgente, volevo solo
fare una cosetta più carina che sfuma da un colore ad un altro.
Sono
andato sulla guida delle API, ho visto sotto brush ma le chiamate che sono
riportate fanno tutt' altro. Solo una poteva essere utile...esiste una
funzione (esisterà sicuramente, perchè win lo fa) che mi sfuma tre due
colori?
Saluti...
--------------------------------
Inviato via 
http://usenet.iol.it

 colori?
non so se ti serve:
http://www.mvps.org/vbnet/
---> search vbnet ---> "gradient"
Creating a Gradient Form Background
The code presented here uses the API to create a gradient form
background. The illustration shows the form with several controls which
can be used on top of the gradient without degrading its look.
This example uses blue to black fading, however with a bit of tweaking
any gradient range could be used. The sample was tested at all colour
depths (256, 16k, 24k, 32k) except 16 colour at a screen resolution of
1024x768, and at 16 bit and 24 bit depths at 800x600. The illustration
is the 256 colour version; the higher colour depths give a smoother
blue-to-black transition.

>non so se ti serve
E' servito :)
Ora sbatto il tutto dentro un modulo
di classe e mi ci faccio una bella classettina. Se poi vuoi la mia
SUPERSKUKGRADIANTSMOOTHBAR, per dare UNA BOTTA DI VITA AI TUOI PROGRAMMI te
la passo :))
Grazie, saluti.


 Grazie, saluti.
ciao, a.

 colori?
Ho creato una classe che fa proprio questo, se la vuoi basta un fischio :-)
ciao, assa.
--
Sito comune del NG: 
http://www.it-lang-vb.net/
http://digilander.iol.it/assatarram/index.html
 (nuova sezione vb ora
disponibile)

Arieccomi .... BuonaSera!
Option Explicit
dim Rosso As Long, dim Blu As Long, dim Verde As Long
Function RGBLONG(L_Colore As Long)
Dim Blue As Double, Green As Double, Red As Double, GreenS As Double, BlueS
As Double
    Blue = Fix((L_Colore / 256) / 256)
    Green = Fix((L_Colore - ((Blue * 256) * 256)) / 256)
    Red = Fix(L_Colore - ((Blue * 256) * 256) - (Green * 256))
    Rosso = Red: Blu = Blue: Verde = Green
End Function
Public Sub Gradient(PictureBox, Colore_iniziale As Long, Colore_Finale As
Long)
Dim W As Integer, color As Long
Dim GradR As Integer, GradB As Integer, GradG As Integer
Dim B1 As Integer, B2 As Integer
Dim G1 As Integer, G2 As Integer
Dim R1 As Integer, R2 As Integer
RGBLONG Colore_iniziale
B1 = Blu
G1 = Verde
R1 = Rosso
RGBLONG Colore_Finale
B2 = Blu
G2 = Verde
R2 = Rosso
PictureBox.ScaleMode = 3
For W = 0 To PictureBox.ScaleWidth
    GradR = ((R2 - R1) / PictureBox.ScaleWidth * W) + R1
    GradG = ((G2 - G1) / PictureBox.ScaleWidth * W) + G1
    GradB = ((B2 - B1) / PictureBox.ScaleWidth * W) + B1
    color = RGB(GradR, GradG, GradB)
    PictureBox.Line (W, 0)-(W, PictureBox.ScaleHeight), color, B
Next W
End Sub
By Utente Win2k

 Ho creato una classe che fa proprio questo, se la vuoi basta un fischio
:-)
sono proprio curioso di sentire il fischio in usenet :D
sndplaysound?
oppure tag <embed> in messaggio html? :pp
--
Fibia "Sakamoto" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #25 delle Mitiche Brigate Takahashi sezione Sud