1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-16 16:35:13 +00:00
qb64/internal/help/_MOUSEWHEEL.md

68 lines
2 KiB
Markdown
Raw Normal View History

The [_MOUSEWHEEL](_MOUSEWHEEL) function returns a positive or negative [INTEGER](INTEGER) value indicating mouse scroll events since the last read of [_MOUSEINPUT](_MOUSEINPUT).
## Syntax
> scrollAmount% = [_MOUSEWHEEL](_MOUSEWHEEL)
## Description
* Returns -1 when scrolling up and 1 when scrolling down with 0 indicating no movement since last read.
* After an event has been read, the value resets to 0 automatically so cumulative position values must be added.
* If no movement on the wheel has occurred since the last [_MOUSEINPUT](_MOUSEINPUT) read, [_MOUSEWHEEL](_MOUSEWHEEL) returns 0.
## Example(s)
Reading the cumulative mouse wheel "clicks".
```vb
DO: _LIMIT 100
DO WHILE _MOUSEINPUT
Scroll = Scroll + _MOUSEWHEEL
LOCATE 10, 20: PRINT Scroll
LOOP
LOOP UNTIL INKEY$ = CHR$(13) ' press Enter to quit
```
A simple text scrolling routine using the mouse wheel value to read a text array.
```vb
DIM Array$(100)
LINE INPUT "Enter a file name with 100 or more lines of text: ", file$
OPEN file$ FOR INPUT AS #1
DO UNTIL EOF(1)
inputcount = inputcount + 1
LINE INPUT #1, Array$(inputcount)
IF inputcount = 100 THEN EXIT DO
LOOP
FOR n = 1 TO 21: PRINT Array$(n): NEXT
CLOSE #1
DO
DO WHILE _MOUSEINPUT
IF row >= 0 THEN row = row + _MOUSEWHEEL ELSE row = 0 'prevent under scrolling
IF row > inputcount - 20 THEN row = inputcount - 20 'prevent over scrolling
IF prevrow <> row THEN 'look for a change in row value
IF row > 0 AND row <= inputcount - 20 THEN
CLS: LOCATE 2, 1
FOR n = row TO row + 20
PRINT Array$(n)
NEXT
END IF
END IF
prevrow = row 'store previous row value
LOOP
LOOP UNTIL INKEY$ > ""
```
Note: You will need a text file that is large enough for this example.
## See Also
* [_MOUSEX](_MOUSEX), [_MOUSEY](_MOUSEY), [_MOUSEBUTTON](_MOUSEBUTTON)
* [_MOUSEINPUT](_MOUSEINPUT), [_MOUSEMOVE](_MOUSEMOVE)
* [_MOUSESHOW](_MOUSESHOW), [_MOUSEHIDE](_MOUSEHIDE)
* [Controller Devices](Controller-Devices)