Scroll Box Position and Scrolling Range
The position of the scroll box is represented as an integer; it is relative to
the left or upper end of the scroll bar, depending on whether the scroll bar
is horizontal or vertical. The position must be within the minimum and maximum
values of the scrolling range. For example, in a scroll bar with a range of 0
through 100, position 50 is in the middle, with the remaining positions
distributed equally along the scroll bar. The initial range depends on the scroll bar.
Standard scroll bars have an initial range of 0 through 100; scroll bar controls
have an empty range (both minimum and maximum values are zero), unless you
supply an explicit range when the control is created. You can change the range at
any time. With operating system version 4.0 or later, you can use the
SetScrollInfo function to set the range values, and the
GetScrollInfo function to retrieve the current range values. In versions earlier than 4.0,
you can use the
SetScrollRange and
GetScrollRange functions.
An application typically adjusts the scroll range to convenient integers,
making it easy to translate the scroll box position into a value corresponding to
the data object to be scrolled. For example, if an application must display 260
lines of a text file in a window that can show only 16 lines at a time, the
vertical scroll bar range can be set to 1 through 244. If the scroll box is at
position 1, the first line will be at the top of the window. If the scroll box is
at position 244, the last line (line 260) will be at the bottom of the window.
If an application attempts to specify a position value that is less than the
minimum or more than the maximum, the minimum or maximum scrolling range value is
used instead.
In version 4.0 or later, an application can set a page size for a scroll bar.
The
page size represents the number of data units that can fit in the client area of the
owner window given its current size. For example, if the client area can hold 16
lines of text, an application would set the page size to 16. Windows uses the
page size, along with the scrolling range and length of the scroll shaft, to set
the size of the scroll box. Whenever a window containing a scroll bar is
resized, an application should call the
SetScrollInfo function to set the page size. An application can retrieve the current page
size by calling the sending
GetScrollInfo function.
To establish a useful relationship between the scroll bar range and the data
object, an application must adjust the range whenever the size of the data
object changes.
As the user moves the scroll box in a scroll bar, the scroll bar reports the
scroll box position as an integer in the scrolling range. If the position is the
minimum value, the scroll box is at the top of a vertical scroll bar or at the
left end of a horizontal scroll bar. If the position is the maximum value, the
scroll box is at the bottom of a vertical scroll bar or at right end of a
horizontal scroll bar.
In version 4.0 or later, the maximum value that a scroll bar can report (that
is, the maximum scrolling position) depends on the page size. If the scroll bar
has a page size greater than one, the maximum scrolling position is less than
the maximum range value. You can use the following formula to calculate the
maximum scrolling position:
MaxScrollPos = MaxRangeValue - (PageSize - 1)
An application must move the scroll box in a scroll bar. Although the user
makes a request for scrolling in a scroll bar, the scroll bar does not
automatically update the scroll box position. Instead, it passes the request to the parent
window, which must scroll the data and update the scroll box position. In
version 4.0 or later, an application uses the
SetScrollInfo function to update the scroll box position; otherwise, it uses the
SetScrollPos function. Because it controls the scroll box movement, the application can
move the scroll box in increments that work best for the data being scrolled.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database