_MOUSEWHEEL - mkilgore/QB64pe GitHub Wiki
The _MOUSEWHEEL function returns a positive or negative INTEGER value indicating mouse scroll events since the last read of _MOUSEINPUT.
- scrollAmount% = _MOUSEWHEEL
- 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 read, _MOUSEWHEEL returns 0.
Example 1: Reading the cumulative mouse wheel "clicks".
'' ''
DO: _LIMIT 100
DO WHILE _MOUSEINPUT
Scroll = Scroll + _MOUSEWHEEL
LOCATE 10, 20: PRINT Scroll
LOOP
LOOP UNTIL INKEY$ = CHR$(13) ' press Enter to quit '' ''
|
Example 2: A simple text scrolling routine using the mouse wheel value to read a text array.
'' ''
DIM Array$(100)
LINE INPUT "Enter a file name with 100 or more lines of text: ", file$
OPEN file$ FOR (file statement) INPUT (file mode) AS #1
DO...LOOP UNTIL EOF(1)
inputcount = inputcount + 1
LINE INPUT (file statement) #1, Array$(inputcount)
IF...THEN inputcount = 100 THEN EXIT DO
LOOP
FOR...NEXT n = 1 TO 21: PRINT Array$(n): NEXT
CLOSE #1
DO
DO...LOOP WHILE _MOUSEINPUT
IF...THEN row >= 0 THEN row = row + _MOUSEWHEEL ELSE row = 0 'prevent under scrolling
IF...THEN row > inputcount - 20 THEN row = inputcount - 20 'prevent over scrolling
IF...THEN prevrow <> row THEN 'look for a change in row value
IF...THEN row > 0 AND (boolean) row <= inputcount - 20 THEN
CLS: LOCATE 2, 1
FOR...NEXT n = row TO row + 20
PRINT Array$(n)
NEXT
END IF
END IF
prevrow = row 'store previous row value
LOOP
LOOP UNTIL INKEY$ > "" '' ''
|
Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page