mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-28 11:17:47 +00:00
68 lines
2 KiB
Markdown
68 lines
2 KiB
Markdown
|
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)
|