Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: TransparentBlt-funktio

Sharph [08.02.2004 18:17:02]

#

Funktio piirtää spriten läpinäkyvästi PictureBoxiin, ja piirtoon tarvitaan lisäksi 3 muuta PictureBoxia: spriteboxi, eli se mikä piirretään, maskiboxi, jossa on valkoisella läpinäkyväksi jäävät kohdat, ja mustalla kaikki kohdat mihin piirretään. Lisäksi tarvitaan myös puskuriboxi, joka toimii puskurina.

''' General Declartionssiin
' määritellään BitBlt-funktio
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

' _hDC:iksi pitää antaa pictureboxin hDC
Function TransparentBlt(X As Single, Y As Single, leveys As Single, korkeus As Single, KuvaMihinPiirretään_hDC As Long, SpriteJokaPiirretään_hDC As Long, KuvanMaski_hDC As Long, KuvaPuskuri_hDC As Long)
jokumuuttuja = BitBlt(KuvaPuskuri_hDC, 0, 0, 32, 32, KuvaMihinPiirretään_hDC, X, Y, vbSrcCopy)
jokumuuttuja = BitBlt(KuvaMihinPiirretään_hDC, X, Y, leveys, korkeus, KuvanMaski_hDC, 0, 0, vbSrcAnd)
jokumuuttuja = BitBlt(KuvaMihinPiirretään_hDC, X, Y, leveys, korkeus, SpriteJokaPiirretään_hDC, 0, 0, vbSrcInvert)
' jostain kumman syystä pitää ajaa 2 kertaa
jokumuuttuja = BitBlt(KuvaPuskuri_hDC, 0, 0, 32, 32, KuvaMihinPiirretään_hDC, X, Y, vbSrcCopy)
jokumuuttuja = BitBlt(KuvaMihinPiirretään_hDC, X, Y, leveys, korkeus, KuvanMaski_hDC, 0, 0, vbSrcAnd)
jokumuuttuja = BitBlt(KuvaMihinPiirretään_hDC, X, Y, leveys, korkeus, SpriteJokaPiirretään_hDC, 0, 0, vbSrcInvert)
End Function

remontti-reiska [08.02.2004 18:27:45]

#

lainaus:

' jostain kumman syystä pitää ajaa 2 kertaa

Voisit selittää myös miksi pitää ajaa kaksi kertaa :D.

T.M. [11.02.2004 15:00:56]

#

Uhh? Jos ei tiedä miten koodi toimii, niin miten toi voi olla sun tekemä edes? *peukku alas*

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta