Kekir писал(а):Как сделать так, чтобы при уменьшении размера окна не убегал бегунок очень далеко? Т.е. при стандартно открытом окне все нормально крутится, но стоит поменять размер окна, как scroll можно задвинуть на очень большое значение вниз\влево.
Хакер писал(а):А использование функции ScrollWindow для этой цели — очень вредный совет. Нельзя использовать функцию ScrollWindow для скроллинга контроллов на VB-формах!
\iGrok писал(а):Опа. Намекни плиз, почему, и меняется ли что-нибудь, если это будет ScrollWindowEx с флагом SW_SCROLLCHILDREN?
alibek писал(а):Нужно контейнер скроллить, а не сдвигать в цикле все компоненты.
Kekir писал(а): Каким образом можно сделать так, чтобы scrollbar прокручивал форму? Вопрос появился в связи с тем, что форма не помещается в маленькие экраны(нетбуки), а уменьшить ее нет возможности.
Хакер писал(а):Так вот одним из компонентов правильного подхода к делу является стремление думать над ситуацией, вникать в ситуацию, логический анализировать свою проблему, находить противоречия между желаемым и действительным, пытаться задавать себе вопросы — как их решить.
Хакер писал(а):... но я бы хотел забыть 99 % вещей, которых знаю.
Хакер писал(а):Эти две вещи позволят восполнить утраченные 99 процентов в любое время.
VBTerminator писал(а):Хакер, Вы имеете в виду то, что если форма не помещается на экране, то её дизайн необходимо переделывать с нуля?
VBTerminator писал(а):Не понимаю, зачем? На данный момент знания стоят денег, тем более эти знания не являются тяжким бременем проклятия или чего-то в этом духе.
VBTerminator писал(а):... и снова убить на это кучу времени?
А чем это плохо? Если делать поправку на то, что компьютеризация не достигла 100%, если по прежнему наряду с компьютерными формами, используются формы и в бумажном варианте, и если прикинуть затраты на переучивание человека, который привык заполнять бумажные формы, то решение сделать электронные формы, которые максимально будут похожи на бумажные вполне очевидно. Другое дело, когда формы используются только в элеронном виде и изначально под это разрабатываются.Хакер писал(а):Люди перешли от проклятых бумажных форм к компьютерным программам, но программы делаются по прежнему так, как будто это бумажная форма, которую надо заполнить.
Ну это напрямую зависит от конкретного индивида, кому то потребуется 10 минут, а кому-то и суток не хватит. И опять же способность добывать знания зависит в т.ч. и от объема тех знаний, которые индивид уже имеет и забудь он 99% своего багажа знаний, вряд-ли он также быстро и легко получит новое знание. ИМХО я бы сказал так, что чем больше человек знает, тем он может быстрее добыть новое знание. Конечно прямолинейной зависимости тут нет, но сама зависимость несомненно имеется.Хакер писал(а):Встала проблема — знаем как решить — замечательно. Не знаем как решить — не вопрос, через 10 минут будем знать.
Так это, ИМХО, и есть стандартный подход к прокрутке - "двигать контейнер, а не контролы", как alibek написал. И, насколько я понял, у ТС именно такая задача и стоит. А если сторонний контрол тултипы рисует в экранных координатах, а не в клиентских - это его (контрола) проблема - фтопку такие контролы.Хакер писал(а):Потому что двигается окно (созданное CreateWindow), а не контрол. Контрол думает, что он остаётся на старом месте. Проверь свойства Top и Left контролов после применения ScrollWindow..
Kekir писал(а):Как сделать так, чтобы при уменьшении размера окна не убегал бегунок очень далеко? Т.е. при стандартно открытом окне все нормально крутится, но стоит поменять размер окна, как scroll можно задвинуть на очень большое значение вниз\влево.
И еще остается след, как от него избавиться? Перерисовка с помощью refresh не помогла. Она просто форму перерисовывает, но не обновляет.
Ну да. Клиентские координаты и должны оставаться одинаковыми. Ты пример посмотри - я двигаю окно scrollbar'ом - в этом случае вся концепция screen/client сохраняется.Хакер писал(а):Иными словами Command1.Top и Command1.Left до вызова ScrollWindow и после вызова ScrollWindow вернут одинаковые результаты
ark писал(а):Ну да. Клиентские координаты и должны оставаться одинаковыми.
Контрола, естественно - относительно контейнера - формыХакер писал(а):Клиентские координаты чего
Хакер писал(а):ScrollWindow действует в обход контролов и двигает сами окна
А что такого страшного? Двигать контролы через топ/лефт нельзя? Так всегда есть ScreenToClient/ClentToScreen. Да и позиция scrollbara у контейнера. Что ещё?Хакер писал(а):отдаёшь себе отчёт о том, какие последствия из этого проистекают?
Конечно, прыгнет. Но лекарство-то элементарное - взять позиции scrollbaroв и двинуть соответсвенно. Или MoveWindow/SetWindowPos.Хакер писал(а):контрол после выполнения такого кода прыгент
ark писал(а):Неуж то эстетичнее PictureBox.Top в минус задирать?
Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 6