Sub SetScrollGadgetPage OVERLOAD(ByVal gadget As Long, ByVal page As Integer)
Только для Windows: Sub SetScrollGadgetPage OVERLOAD(ByVal hWin As HWND, ByVal page As Integer,ByVal style As Integer)
Это перегруженная функция для установки размера страницы для пропорциональной прокрутки ScrollBar. Первая функция используется для своего созданного гаджета с помощью ScrollBarGadget. Вторая функция используется для стандартного ScrollBar, который указывается при создании окна с параметрами WS_HSCROLL и WS_VSCROLL.
gadget - номер гаджета
hWin - окно , имеющее ScrollBar
page - новый размер страницы пропорциональной прокрутки
style - стиль , может быть:
SBS_HORZ - горизонтальный ScrollBar
SBS_VERT - вертикальный ScrollBar
Windows , Linux
#Include "window9.bi"
Dim Shared As HWND hw
Dim As Integer ev
hw=OpenWindow("",10,10,300,240): WindowColor(hw,&hff0000)
UpdateInfoXserver()
ScrollBarGadget(2,0,0,20,WindowClientHeight(hw),0,470,SBS_VERT,10)
SetGadgetColor(2,&hff0000,1,3)
Function size() As Integer
Static As Integer width_scroll , height_scroll , sizewinX , sizewinY
If WindowClientHeight(hw)<>sizewinY Then
sizewinY=WindowClientHeight(hw)
ResizeGadget(2,,,,sizewinY)
If sizewinY<GetScrollGadgetRange(2,1) Then
HideGadget(2,0)
SetScrollGadgetPage(2,sizewinY)
Else
HideGadget(2,1)
EndIf
EndIf
If height_scroll<>GetScrollGadgetPos(2) Then
height_scroll=GetScrollGadgetPos(2)
EndIf
Return TRUE
End Function
Function draw_ () As Integer
WindowStartDraw(hw,30,0,300,440)
FillRectDraw(100,100,&HFF0000)
CircleDraw(100,190-GetScrollGadgetPos(2),50,,255)
BoxDraw(50,300-GetScrollGadgetPos(2),100,100,,&hff00)
StopDraw
Return TRUE
End Function
SetTimer(hw,2,20,Cast(any ptr,@DRAW_))
SetTimer(hw,1,20,Cast(any ptr,@size))
Do
ev=WaitEvent
Loop Until ev=EventClose
#Include "window9.bi"
Dim Shared As HWND hw
Dim As Integer ev
Dim Shared As RECT rect
hw=OpenWindow("",10,10,300,240,WS_OVERLAPPEDWINDOW Or WS_VISIBLE Or WS_VSCROLL Or WS_HSCROLL): WindowColor(hw,&hff0000)
GetClientRect(hw,@rect)
ButtonGadget(3,100,100,200,200,"Hello")
SetScrollGadgetRange(hw,0,630,0):SetScrollGadgetRange(hw,0,470,1)
SetScrollGadgetPage(hw,rect.right-rect.left,0)
SetScrollGadgetPage(hw,rect.bottom-rect.top,1)
Sub size()
Static As Integer width_scroll , height_scroll , sizewinX , sizewinY
GetClientRect(hw,@rect)
If rect.right-rect.left<>sizewinX Then
sizewinX=rect.right-rect.left
If sizewinX<=GetScrollGadgetRange(hw,1,0) Then
ShowScrollBar(hw,0,1)
SetScrollGadgetPage(hw,sizewinX,0)
Else
ShowScrollBar(hw,0,0)
EndIf
EndIf
If rect.bottom-rect.top<>sizewinY Then
sizewinY=rect.bottom-rect.top
If sizewinY<GetScrollGadgetRange(hw,1,1) Then
ShowScrollBar(hw,1,1)
SetScrollGadgetPage(hw,sizewinY,1)
Else
ShowScrollBar(hw,1,0)
EndIf
EndIf
If width_scroll<>GetScrollGadgetPos(hw,0) Or height_scroll<>GetScrollGadgetPos(hw,1) Then
width_scroll=GetScrollGadgetPos(hw,0):height_scroll=GetScrollGadgetPos(hw,1)
ResizeGadget(3,100-width_scroll,100-height_scroll)
EndIf
End Sub
SetTimer(hw,1,1,Cast(TIMERPROC,@size))
Do
ev=WaitEvent
Loop Until ev=EventClose
Created with the Personal Edition of HelpNDoc: Full featured Documentation generator