1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3
4<head>
5<title>Windows Interface Reference: Scrollbar structure</title>
6</head>
7
8<body>
9
10<h1>Scrollbar </h1>
11
12<p>The Scrollbar structure contains functions and styles for scroll bars and functions to
13scroll windows.</p>
14
15<pre>structure Scrollbar:
16sig
17    type HWND and HDC and HRGN
18    type RECT =  { left: int, top: int, right: int, bottom: int }
19
20    structure Style:
21    sig
22        include BIT_FLAGS where type flags = Window.Style.flags
23        val WS_OVERLAPPED: flags and WS_POPUP: flags and WS_CHILD: flags and WS_MINIMIZE: flags
24        and WS_VISIBLE: flags and WS_DISABLED:flags and WS_CLIPSIBLINGS:flags
25        and WS_CLIPCHILDREN:flags and WS_MAXIMIZE:flags and WS_CAPTION:flags
26        and WS_BORDER:flags and WS_DLGFRAME:flags and WS_VSCROLL:flags and WS_HSCROLL:flags
27        and WS_SYSMENU:flags and WS_THICKFRAME:flags and WS_GROUP:flags and WS_TABSTOP:flags
28        and WS_MINIMIZEBOX:flags and WS_MAXIMIZEBOX:flags and WS_TILED:flags and WS_ICONIC:flags
29        and WS_SIZEBOX:flags and WS_OVERLAPPEDWINDOW:flags and WS_TILEDWINDOW:flags
30        and WS_POPUPWINDOW:flags and WS_CHILDWINDOW:flags
31        and SBS_HORZ:flags and SBS_VERT:flags and SBS_TOPALIGN:flags and SBS_LEFTALIGN:flags
32        and SBS_BOTTOMALIGN:flags and SBS_RIGHTALIGN:flags and SBS_SIZEBOXTOPLEFTALIGN:flags
33        and SBS_SIZEBOXBOTTOMRIGHTALIGN:flags and SBS_SIZEBOX:flags and SBS_SIZEGRIP:flags
34    end
35
36    type enableArrows = { enableLeftUp: bool, enableRightDown: bool }
37
38    val ESB_ENABLE_BOTH: enableArrows
39    val ESB_DISABLE_BOTH: enableArrows
40    val ESB_DISABLE_LEFT: enableArrows
41    val ESB_DISABLE_RIGHT: enableArrows
42    val ESB_DISABLE_UP: enableArrows
43    val ESB_DISABLE_DOWN: enableArrows
44
45    type SCROLLINFO =
46        { minPos: int, maxPos: int, pageSize: int, pos: int, trackPos: int }
47
48    datatype ScrollInfoOption =
49        SIF_RANGE | SIF_PAGE | SIF_POS | SIF_DISABLENOSCROLL | SIF_TRACKPOS
50
51    val SIF_ALL : ScrollInfoOption list
52
53    datatype ScrollBarType = SB_BOTH | SB_CTL | SB_HORZ | SB_VERT
54    datatype ScrollWindowFlag = SW_ERASE | SW_INVALIDATE | SW_SCROLLCHILDREN
55
56    val EnableScrollBar : HWND * ScrollBarType * enableArrows -&gt; unit
57    val GetScrollInfo : HWND * ScrollBarType * ScrollInfoOption list -&gt; SCROLLINFO
58    val GetScrollPos : HWND * ScrollBarType -&gt; int
59    val ScrollDC : HDC * int * int * RECT * RECT * HRGN -&gt; RECT
60    val ScrollWindow : HWND * int * int * RECT * RECT -&gt; unit
61    val ScrollWindowEx : HWND * int * int * RECT * RECT * HRGN * ScrollWindowFlag list -&gt; RECT
62    val SetScrollInfo :
63        HWND * ScrollBarType * ScrollInfoOption list * SCROLLINFO * bool -&gt; int
64    val SetScrollPos : HWND * ScrollBarType * int * bool -&gt; int
65    val SetScrollRange : HWND * ScrollBarType * int * int * bool -&gt; bool
66    val ShowScrollBar : HWND * ScrollBarType * bool -&gt; unit
67end
68=</pre>
69</body>
70</html>
71