Что нового

Вертикальная полоса прокрутки

rybik

Новичок
Сообщения
84
Репутация
0
Как мне сделать появление полосы прокрутки если элементы выходят за границы окна?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Re: Вертикальная полоса пропрутки

привет. очень не информативно.
попробую догадаться - ЭТО?
 
Автор
R

rybik

Новичок
Сообщения
84
Репутация
0
Re: Вертикальная полоса пропрутки

Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

AutoItSetOption("GUIResizeMode", 2 + 32 + 256 + 512)

Global $Window = GUICreate("Window", 425, 140, 800, 0, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))

GUICtrlCreateButton("Buttom", 100, 100, 150, 150)
GUISetState(@SW_SHOW, $Window)

While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd


Вот пример, кнопка выходит за пределы окна. Мне надо что-бы скрипт понимал, когда содержимое окна выходи за пределы, тогда появляется полоса прокрутки. Если содержимое влезло в окно, то полосу прокрутки удалять.
 
Автор
R

rybik

Новичок
Сообщения
84
Репутация
0
Re: Вертикальная полоса пропрутки

Alofa сказал(а):
Что является изначальной константой: расположение элементов в окне или размер окна?[/url].

Константой является расположение элементов в окне. Когда я меняю размер окна с помощью мышки элементы становятся за областью видимого окна и должна появляться полоса прокрутки.
Еще у меня элементы в окне будут добавляться при нажатии клавиши и окно будет увеличиваться, как только упрется в границу экрана, должна появиться полоса прокрутки.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Re: Вертикальная полоса пропрутки

rybik
Полоса прокрутки - один из самых сложных элементов GUI
Код:
#include <GUIScrollbars_Ex.au3> ; https://www.autoitscript.com/forum/topic/113723-scrollbars-made-easy-new-version-13-may-18/
#include <GUIConstants.au3>

AutoItSetOption("GUIResizeMode", 2 + 32 + 256 + 512)

$Window = GUICreate("Window", 425, 140, 800, 0, $WS_OVERLAPPEDWINDOW)
$Button = GUICtrlCreateButton("Добавить кнопку", 100, 100, 150, 150)
GUISetState(@SW_SHOW, $Window)
$Btn = -1

_GUIScrollbars_Generate($Window, 1, 1) ; создание полос прокрутки
_GUIScrollbars_ReSizer($Window, 250, 250) ; установка начальных границ прокрутки

While 1
  Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
      Exit
    Case $Button
      $Btn = GUICtrlCreateButton("Удалить кнопку", 300, 100, 150, 150)
      GUICtrlSetState($Button, $GUI_DISABLE)
      _GUIScrollbars_ReSizer($Window, 450, 250) ; установка новых границ прокрутки
    Case $Btn
      GUICtrlDelete($Btn)
      $Btn = -1
      GUICtrlSetState($Button, $GUI_ENABLE)
      _GUIScrollbars_ReSizer($Window, 250, 250) ; возврат начальных границ прокрутки
  EndSwitch
WEnd



Добавлено:
Сообщение автоматически объединено:

И опечатку в названии темы исправьте: пропрутки ;)
 
Автор
R

rybik

Новичок
Сообщения
84
Репутация
0
Re: Вертикальная полоса пропрутки

InnI сказал(а):
rybik
Полоса прокрутки - один из самых сложных элементов GUI
Код:
#include <GUIScrollbars_Ex.au3> ; https://www.autoitscript.com/forum/topic/113723-scrollbars-made-easy-new-version-13-may-18/
#include <GUIConstants.au3>

AutoItSetOption("GUIResizeMode", 2 + 32 + 256 + 512)

$Window = GUICreate("Window", 425, 140, 800, 0, $WS_OVERLAPPEDWINDOW)
$Button = GUICtrlCreateButton("Добавить кнопку", 100, 100, 150, 150)
GUISetState(@SW_SHOW, $Window)
$Btn = -1

_GUIScrollbars_Generate($Window, 1, 1) ; создание полос прокрутки
_GUIScrollbars_ReSizer($Window, 250, 250) ; установка начальных границ прокрутки

While 1
  Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
      Exit
    Case $Button
      $Btn = GUICtrlCreateButton("Удалить кнопку", 300, 100, 150, 150)
      GUICtrlSetState($Button, $GUI_DISABLE)
      _GUIScrollbars_ReSizer($Window, 450, 250) ; установка новых границ прокрутки
    Case $Btn
      GUICtrlDelete($Btn)
      $Btn = -1
      GUICtrlSetState($Button, $GUI_ENABLE)
      _GUIScrollbars_ReSizer($Window, 250, 250) ; возврат начальных границ прокрутки
  EndSwitch
WEnd



Добавлено:
Сообщение автоматически объединено:

И опечатку в названии темы исправьте: пропрутки ;)




То что нужно, спасибо. Еще один вопрос не много не по теме. Можно сделать так что бы размер окна менялся только по вертикали?
 
Верх