[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Графика в visual basic (Графика в visual basic)
Графика в visual basic
ilimДата: Пятница, 04.02.2011, 05:26 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Часто народ спрашивает: "Как убрать мерцание при передвижение объектов??? КАК?????". Вобще для этого есть DirectX, но его хрен два освоишь(по себе знаю), а есть еще и функция BitBlt. У ней возможности намного меньше, но работать с графикой без мерцания она может. Начнем`с... Сделаем программу которая будет перемещать наш рисунок, БЕЗ мерцания.
На форму кинь, Таймер, Picture, и засунь туды какой - нибуть рисунок(главное чтоб не очень большой, можешь мою фотку взять:

Теперь установи свойства для формы:
Form1:
Scalemode = 3-Pixel AutoRedraw = True

Теперь свойства для Picture1:
ScaleMode 3-Pixel
Picture1 AutoRedraw True
Picture1 Visible False

У таймера:
Timer1 Interval 1

Код:

' Объявляем API
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
Dim x As Long, y As Long

Private Sub Form_Load()
Draw ' Запускаем функцию
x = 0
y = 0
End Sub

Function Draw() ' Функция Draw
Form1.Cls ' Очищаем форму
' При помощи функции BitBlt берем картинку из Picture1(ширина и высота картинки равна ширине и высоте Picture1), и начинаем рисовать ее на форме с координатами x и y
BitBlt Form1.hDC, x, y, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, vbSrcCopy
Form1.Refresh ' Обновляем форму(при использование свойства AutoRedraw = True, форму надо всегда обновлять...)
End Function

Private Sub Timer1_Timer()
' Перемещаем картинку в право на 1 пиксель
x = x + 1
' Опускаем ее вниз
y = y + 1
' Повторяем функцию Draw
Draw
End Sub


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Графика в visual basic (Графика в visual basic)
Страница 1 из 11
Поиск: