прокрутка формы

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

прокрутка формы

Сообщение iolaus » 30.05.2005 (Пн) 22:01

у меня на форме должно быть 45 textboxов идущих вниз, это собственно за раз не влезает... а как сделать ЛУЧШЕ что бы это все скролировать????

у меня еть только идея поставить скролбар и менять координаты всех textboxов... но это как-то голимо:(

подскажите кто чего знает!!!!!!!
This message will self destruct in five seconds!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.05.2005 (Пн) 22:09

Добавь к окну стиль WS_VSCROLL.
Изображение

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 30.05.2005 (Пн) 22:24

а я правильно делаю????

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Const WS_VSCROLL = &H200000
Public Const GWL_STYLE = (-16)


SetWindowLong Me.hwnd, GWL_STYLE, WS_VSCROLL

только получается какой-то расколбас!!!!
This message will self destruct in five seconds!!!

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 30.05.2005 (Пн) 23:09

попробовал так:

dwStyles = GetWindowLong(Picture1.hwnd, GWL_STYLE)
dwStyles = dwStyles And WS_VSCROLL
SetWindowLong Picture1.hwnd, GWL_STYLE, dwStyles

та же проблема Picture1 просто не виден
This message will self destruct in five seconds!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.05.2005 (Вт) 0:26

Вместо And ставь Or.
Изображение

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 31.05.2005 (Вт) 8:34

сделал так:
dwStyles = GetWindowLong(Picture1.hwnd, GWL_STYLE)
dwStyles = dwStyles Or WS_VSCROLL
SetWindowLong Picture1.hwnd, GWL_STYLE, dwStyles

И ничего!!! скролы не появились и прокручивать ни чего нельзя....

Я что-то не догоняю

А собственно скролы вообще должны появиться или нет???
This message will self destruct in five seconds!!!

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

Re: прокрутка формы

Сообщение Andrey Fedorov » 31.05.2005 (Вт) 9:31

iolaus писал(а):у меня на форме должно быть 45 textboxов идущих вниз, это собственно за раз не влезает... а как сделать ЛУЧШЕ что бы это все скролировать????


А не проще ли взять обычный Grid????
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 31.05.2005 (Вт) 10:02

А не проще ли взять обычный Grid????

А реально!!!! спасибо!!!

Но вопрос со скролом открыт... Почему не получается???
This message will self destruct in five seconds!!!

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

Сообщение Andrey Fedorov » 31.05.2005 (Вт) 10:09

iolaus писал(а):Но вопрос со скролом открыт... Почему не получается???


Да честно говоря не охота разбираться...

Когда мне надо было скролить на форме PictureBox я просто использовал приложенный класс. Если разберешься с его свойствами (оно не столь сложно) то можешь его использовать чтобы скролить объект на котором лежат твои контролы... Но в твоем случае оно и не нужно...
Вложения
cScrollBars.rar
(5.57 Кб) Скачиваний: 38
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.05.2005 (Вт) 12:23

iolaus писал(а):Но вопрос со скролом открыт... Почему не получается???

Для формы - работает, я только что проверил.
Для пикчербокса - не работает.
Изображение

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 31.05.2005 (Вт) 13:40

>>у меня еть только идея поставить скролбар и менять координаты всех textboxов... но это как-то голимо

А я бы сразу сделал массив этих текстбоксов, и немного усовершенствовал бы эту идею... и ничего галимого...

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

Сообщение Andrey Fedorov » 31.05.2005 (Вт) 14:02

AjaxVS писал(а):А я бы сразу сделал массив этих текстбоксов, и немного усовершенствовал бы эту идею... и ничего галимого...


Мозахисты... :wink: Я же давал класс, в нем есть ссылка на сайт, на этом сайте примитивно находится пример. Как раз на эту тему (только в нем TextBox-ов штук 50, а не 40):

http://www.vbaccelerator.com/home/VB/Code/Libraries/Subclassing/Adding_Scroll_Bars_To_Forms__PictureBoxes_and_UserControls/VB5_Scroll_Bars_Demonstration.asp
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 31.05.2005 (Вт) 21:35

tyomitch
я попробовал для формы...
получается, но только скрол появляется когда пытаешся изменить размер окна

почемуто ни
Me.Refresh
ни
UpdateWindow (Me.hwnd)
не помогает и потом скрол ведь не работает.... а как им потом управлять???
This message will self destruct in five seconds!!!

Тимофей
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 01.03.2004 (Пн) 10:01
Откуда: Киров

Сообщение Тимофей » 01.06.2005 (Ср) 8:08

Посмотрите мой пример.
Вложения
Scroll_Form.rar
(1.68 Кб) Скачиваний: 47

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.06.2005 (Чт) 12:42

,не помогает и потом скрол ведь не работает.... а как им потом управлять???

Видел где-то свойство WS_AutoScroll не помню где , но ведь есть же :) :) :)
Если всё делать своими ручками, они скоро отвалятся !

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.06.2005 (Чт) 15:39

Kovu писал(а):
,не помогает и потом скрол ведь не работает.... а как им потом управлять???

Видел где-то свойство WS_AutoScroll не помню где , но ведь есть же :) :) :)

Нету такого.
MSDN писал(а):WS_VSCROLL

When this style is enabled, Windows places a vertical scroll bar along the right side of the window. Windows does not automatically scroll the window. For a window to allow vertical scrolling, the window procedure for the window must process the WM_VSCROLL messages, and the window must be created with the WS_VSCROLL style.
Изображение


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot], Yandex-бот и гости: 168

    TopList