вопросы про picturebox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

вопросы про picturebox

Сообщение BOO » 23.10.2003 (Чт) 15:10

Из-за чего у меня порой в моей программе очищается picturebox, например я дабовляю в него другой объект(в сам picturebox),а картинка pictureboxa исчезает?

Да че такое autoredraw?
Если это эвто перерисовка можно ли сменить интервал в нем? :oops:
Слушайте рок!

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 23.10.2003 (Чт) 15:45

autoredraw работает без интервалов :wink:
Это св-во характеризует способность Picture Box-а сохранять изображение в контексте (кажется так называется) при потере формой фокуса. Т.е., например ты рисуешь в п.боксе что-либо, что бы оно сохранилось при потере формой фокуса надо сделать autoredraw=true. А если ты загружаешь в п.бокс другое изображение, то предыдущее ес-но удалится. При наложении изображений друг на друга надо использовать ф-ции копирования изображений.
Понимаешь? (с)Б.Ельцин.

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

Большое блин спасибо

Сообщение BOO » 23.10.2003 (Чт) 15:55

Спасибо теперь я разобрался с этим но тут еще пара свойств которые не описываются ни в книгах ни в FAQах:
hds-непойму че это такое и как его узнать у image
Слушайте рок!

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 23.10.2003 (Чт) 16:20

Picture1.hDC

Дескриптор контекста устройства,на котором будет что-либо происходить

Дескриптор
Уникальное целое число, которое присваивается объекту под Windows. Дескрипторы могут идентифицировать большинство видов объекта, включая ключи системного реестра, файлы, блоки памяти, окна.

Контекст устройства
В Windows поверхность, на которой вы рисуете, называется контекстом устройства. Доступ к нему обеспечивает дескриптор hDC. Получив дескриптор контекста устройства, можно вызывать API-функции для вывода графики(точки, линии, окружности, текст).

У Image на прямую узнать дескриптор нельзя, просто он не предназначен для рисования. Нужно через API.
Понимаешь? (с)Б.Ельцин.

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

призовая игра

Сообщение BOO » 23.10.2003 (Чт) 17:41

:lol: вот еще одно можноли сделать(если можно то как чтобы) перематывать содержимое picturebox спомощью скролов, заранее благодарю
Слушайте рок!

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 23.10.2003 (Чт) 22:05

Самое быстрое и простое средство:
Помести на форму два picturebox-а. Первый большой (pic1) с образцом рисунка второй меньше (picTwo) в котором будет прокручиваться картинка. В этом примере picTwo должен быть меньше pic1 по высоте и ширине. Возле picTwo установи два скрола - вертикальный (vcb1) и горизонтальный (hsb1).
А вот код модуля формы:

Option Explicit

Private Sub Form_Load()
hsb1.Max = pic1.ScaleWidth - picTwo.ScaleWidth
hsb1.LargeChange = hsb1.Max \ 10
hsb1.SmallChange = hsb1.Max \ 25
vcb1.Max = pic1.ScaleHeight - picTwo.ScaleHeight
vcb1.LargeChange = vcb1.Max \ 10
vcb1.SmallChange = vcb1.Max \ 25
picTwo.Picture = pic1.Picture
End Sub

Private Sub hsb1_Change()
UpdatePicTwo
End Sub

Private Sub hsb1_Scroll()
hsb1_Change
End Sub

Private Sub vcb1_Change()
UpdatePicTwo
End Sub

Private Sub vcb1_Scroll()
vcb1_Change
End Sub

Private Sub UpdatePicTwo()
On Error Resume Next
picTwo.Picture = LoadPicture("")
picTwo.PaintPicture pic1.Picture, 0, 0, _
picTwo.ScaleWidth, picTwo.ScaleHeight, _
hsb1.Value, vcb1.Value, _
picTwo.ScaleWidth, picTwo.ScaleHeight, _
vbSrcCopy
End Sub
Понимаешь? (с)Б.Ельцин.

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

благодарю

Сообщение BOO » 24.10.2003 (Пт) 14:20

Спасибо за ответ!
Слушайте рок!


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 4

    TopList