Прокрутка изображения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Прокрутка изображения

Сообщение Sirik » 21.09.2004 (Вт) 11:27

Как в одной картинки прокрутить другую, причём вторая по размерам большей первой.
Оба элемента Picture

P.S. Где-то видел пример с Масяней, но только не помню где :x

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 21.09.2004 (Вт) 11:42

Попробуй использовать BitBlt
Не бойся что не знаешь, бойся что не учишься.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 21.09.2004 (Вт) 11:50

Akella писал(а):Попробуй использовать BitBlt

Я понимаю, что надо использовать эту фукция. Но готовый пример... был как раз то...

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 21.09.2004 (Вт) 12:24

Так Чтоли
Код: Выделить всё
'СМотри:
'на форму:  2 PictureBox [pic1,Pic2] , 1 Scrollbar [HS], Check1 [ch]

'В форме:

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

Private Sub Ch_Click()
Pic1.Cls
Pic2.Cls
End Sub

Private Sub Form_Load()
Me.ScaleMode = 3
Pic1.ScaleMode = 3
Pic2.ScaleMode = 3
HS.Max = Pic1.ScaleWidth
Ch.Caption = "min in Max / Max in min"
End Sub

Private Sub HS_Change() 'Scroll
X1 = HS.Value ' Координата по х
'pic1 - Большая ; Pic2 - маленькая Картинки
If Ch.Value = 1 Then
Pic1.Cls
BitBlt Pic1.hDC, X1, 50, Pic2.ScaleWidth, Pic2.ScaleHeight, Pic2.hDC, 0, 0, _ vbSrcCopy
Pic1.Refresh
Else
Pic2.Cls
BitBlt Pic2.hDC, X1, 50, Pic1.ScaleWidth, Pic1.ScaleHeight, Pic1.hDC, 0, 0, _ vbSrcCopy
Pic2.Refresh
End If
Не бойся что не знаешь, бойся что не учишься.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 21.09.2004 (Вт) 12:32

Вроде оно, счас буду пробовать. Спасибо

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 21.09.2004 (Вт) 13:25

Могу рекомендовать глянуть на готовый cScrollBars.cls, пример применения есть на http://www.vbaccelerator.com/home/VB/Code/Libraries/Common_Dialogs/Hooked_Common_Dialogs/VB6_Common_Dialog_with_Picture_Preview.asp

Там все достаточно просто...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 21.09.2004 (Вт) 13:27

Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4160
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 21.09.2004 (Вт) 17:01

Народ, ВЫ ЧЕ!!! :shock:
Не проще ли просто в цикле менять Left (или Top) второй картинки?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 0

    TopList