Nyt on pakko kysyä; millä APIlla Labelista saisi osittain läpi näkyvän?
Hmm.
Ei varmaan millään.
itsellä olisi mielessä yksi hidas tekniikka mutta en ole varma pystyykö vb:llä toteuttamaan sitä eli:
tektsin väri muistiin (a = label1.forecolor)
ja sitten siinä kohtaa missä teksti on niin luetaan joka pikseli taulukkoon siitä alapuolelta ja lopuksi muistaakseni jaettiin tai kerrottiin tai plussattiin tai miinustettiin nää pikseli-arvot... turhan vaikeeta... ennemmin suosittelen että jokaisen kirjaimen kirjoitat johonkin kuvaan, vaikkapa paintilla sen jälkeen tallennat sen, viet vb:hen ja blittauksen avulla sitten hoidat homman:
ne alkumääritys jutut mitä en muista ulkoa tähän
funkkari jossa esim:
A on kuva kohdasta x,y joka siirretään sitten itse kuvaan blittauksella
ja olikohan että maskia ei tarvitse piirtää niin se kirjoittaa siihen kuvaan pikseleiksi arvot: tausta + sprite jos oikeen muistan...
eli jokainen kirjain erikseen muistiin:
a= (pkuva.picture, x, y, 16,16, sprite1.picture, kirjain,016,16,jotain) tohon tyyliin,joku saa neuvoa tarkemmin, itse en muista miten tää homma hoitui ;)
Jos kyseessä on vb6, niin alphablendauksen saat helposti interpoloimalla(vb.netissä sisäänrakennettu)
' alpha on välillä 0 - 1 ja vari on hajottamaton rgb arvo Function Alphablend(ByVal vari1 as Long, ByVal vari2 as Long, ByVal alpha as Double) as long Alphablend = vari1*(1-alpha) + vari2*alpha End Function
Print käskyllä voit sitten tietääkseni printata erivärisiä kirjaimia kyseisellä värillä. Blendaat vain kirjaimen värin taustaväriin.
Edit: Kyseinen keino ei muuta labelia läpinäkyväksi, vaan saat aikaan vain samankaltaisen efektin.
Siinä olisi kyllä taustakuva tekstin taustalla. Että eriväristen kirjaimien tulostus ei riitä.
Gdi+:n apilla tuo olisi helppoa.
Loisit vain gradientti siveltimen ja piirtäisit tekstin sen avulla..
Jostain olin saanut päähäni, että jos lataa Microsoftin sivuilta tietyn kirjaston, voisi käyttää gdi+:aa myös vb6:ssa..
Edit:
Oletukseni osui näemmä oikeaan:
http://www.mvps.org/emorcillo/vb6/multimedia/
Jos sinulla on XP, niin voit tuolla keinolla käyttää gdi+:aa.
rndprogy, no sitten vaan kaikki käytössä olevat kirjaimet yhdeksi isoksi kuvaksi ja eikun blittailemaan ja tunge sinne tämmöinen aliohjelma:
tarvitset seuraavat; picture1, picture2, text1, text2
käyttötarkoitus:
picture1 = kuva josta revitään kirjaimet
picture2 = kuva jossa on taustakuva ja johon kirjaimet piirretään sitten
text2 = teksti johon on aluksi kirjoitettu se teksti mikä lopuksi piirretään
text1 = teksti joka siirretään kirjain kerralla text2:een
dim kaappaaja as string for i = 1 to len(text1.text) kaappaaja = mid(i,text1.text) kirjain next i function kirjain() if kaappaaja = "a" then 'tähän sit koodin rimpsu et otetaan blittaamalla jokin kohta kuvasta ja laitetaan pikki1:seen end if text2.text = text2.text + kaappaaja end function
siis tommosta itse kokeilisin, ainaskaan ei tule ongelmia fonttien kanssa, itse inhoan semmoista että joissakin pienissä peleissä/ohjelmissa on käytössä fonttejä joita ei wintoosassa ole valmiina ja ei suostu käynnistymään tämän vuoksi ellet ole hankkinut oikeaa fonttia jne... se on myöskin yksi syy miksi kannatan itse enemmän sitä että peliin/ohjelmaan joko otetaan käyttöön tätä tapaa piirtää teksti tai sitten jos ei piirretä niin sitten käytetään ihan perus fontteja (arial, verdana jne...)
Tässä onkin nyt sellainen ongelma että alan käyttämään tässä OpenGL:llää, josko sillä onnistuisi paremmin.
Edit: Muotoilin lauseen oikein
no voi kehveli... sitten osaa ainaskaan neuvoa yhtään eli fiksummat saa luvan auttaa :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.