- Код: Выделить всё
'Picture1 - PictureBox с основным рисунком
'Picture2 - PictureBox с шариком на белом фоне
'Picture3 - PictureBox c маской
'Picture4 - PictureBox, в который копируется фон
'везде свойство autoredraw=true, измерение стоит в пикселах.
Public x, y As Integer
Private Sub Form_Load()
' установка начальных координат
x = 10
y = 10
' копирование фона который будет скрыт шариком
Call BitBlt(Picture4.hDC, 0, 0, 50, 50, Picture1.hDC, x, y, vbSrcCopy)
Picture4.Refresh
' включение таймера
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
' копирование фона, скрытого шариком на основную картинку
Call BitBlt(Picture1.hDC, x, y, 50, 50, Picture4.hDC, 0, 0, vbScrCopy)
Picture1.Refresh
' сдвижение шарика
x = x + 1
y = y + 1
' копирование фона который будет скрыт шариком
Call BitBlt(Picture4.hDC, 0, 0, 50, 50, Picture1.hDC, x, y, vbSrcCopy)
Picture4.Refresh
' копирование маски и шарика на основную картинку
Call BitBlt(Picture1.hDC, x, y, 50, 50, Picture3.hDC, 0, 0, vbMergePaint)
Call BitBlt(Picture1.hDC, x, y, 50, 50, Picture2.hDC, 0, 0, vbSrcAnd)
Picture1.Refresh
End Sub