Kaksoispuskurointi on mielestäni antin oppaan pohjalta aloittelialle aivan mahdoton pala nieltäväksi. Tässä homma vähän helpommin.
Formille tarvitset:
- pBuffer picturen, scalemodet kolmoseksi
- pShow picturen, scalemodet myös kolmoseksi
- Timer1 timerin, intervalli vaikkapa 10
- pMask picturen, laita tähän maskin kuva, scalemode kolme
- pPic picturen, laita tähän itse kuva, scalemodet kolme
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 ' Blittaamisen API funkkari Private Sub Timer1_Timer() pBuffer.Cls ' Tyhjennetään puskuri vahoista moskista Dim z As Long ' Paikka jonne bitblt:n paluuarvot tungetaan z = BitBlt(pBuffer.hDC, 50, 100, 64, 64, pMask.hDC, 0, 0, vbSrcAnd) ' Piirretään maski z = BitBlt(pBuffer.hDC, 50, 100, 64, 64, pPic.hDC, 0, 0, vbSrcInvert) ' Piirretään kuva ' x = 50, y=100, leveys=64, korkeus=64 z = BitBlt(pShow.hDC, 0, 0, pShow.Width, pShow.Height, pBuffer.hDC, 0, 0, vbSrcCopy) ' Hutmitaan kuva esille puskurista End Sub
Höh, miksei tätä hyväksytty?
olisi ihan kätsy aloittelijoille.
Aihe on jo aika vanha, joten et voi enää vastata siihen.