home *** CD-ROM | disk | FTP | other *** search
- '***************************************************************
- '* MOUSE.BAS *
- '* 6/24/88 by Dave Tryon, Microsoft Product Support *
- '* *
- '* Demonstration of calling mouse functions using CALL MOUSE *
- '* *
- '* Load QBMOUSE.QLB into memory with QuickBASIC... *
- '* QB /L QBMOUSE.QLB *
- '* *
- '* Assumes EGA - For CGA change SCREEN and LINE statements *
- '***************************************************************
-
- ' Initialization
- DIM CURSOR(15, 1) AS INTEGER
- COMMON CURSOR() AS INTEGER
- DECLARE SUB MOUSE (M1%, M2%, M3%, M4%)
- CLS
-
- ' Define Cursor Array
- CURSOR(0, 0) = &HE1FF
- CURSOR(1, 0) = &HE1FF
- CURSOR(2, 0) = &HE1FF
- CURSOR(3, 0) = &HE1FF
- CURSOR(4, 0) = &HE1FF
- CURSOR(5, 0) = &HE000
- CURSOR(6, 0) = &HE000
- CURSOR(7, 0) = &HE000
- CURSOR(8, 0) = &H0
- CURSOR(9, 0) = &H0
- CURSOR(10, 0) = &H0
- CURSOR(11, 0) = &H0
- CURSOR(12, 0) = &H0
- CURSOR(13, 0) = &H0
- CURSOR(14, 0) = &H0
- CURSOR(15, 0) = &H0
-
- CURSOR(0, 1) = &H1E00
- CURSOR(1, 1) = &H1200
- CURSOR(2, 1) = &H1200
- CURSOR(3, 1) = &H1200
- CURSOR(4, 1) = &H1200
- CURSOR(5, 1) = &H13FF
- CURSOR(6, 1) = &H1249
- CURSOR(7, 1) = &H1249
- CURSOR(8, 1) = &HF249
- CURSOR(9, 1) = &H9001
- CURSOR(10, 1) = &H9001
- CURSOR(11, 1) = &H9001
- CURSOR(12, 1) = &H8001
- CURSOR(13, 1) = &H8001
- CURSOR(14, 1) = &H8001
- CURSOR(15, 1) = &HFFFF
-
- ' Check if Mouse Driver installed--exit if not.
- DEF SEG = 0
- MSEG = 256 * PEEK(51 * 4 + 3) + PEEK(51 * 4 + 2)
- MOUSE1 = 256 * PEEK(51 * 4 + 1) + PEEK(51 * 4) + 2
- IF MSEG OR (MOUSE1 - 2) THEN
- DEF SEG = MSEG
- IF PEEK(MOUSE1 - 2) <> 207 THEN
- SCREEN 9
-
- ' Function 0 Mouse Reset
- M1% = 0
- CALL MOUSE(M1%, M2%, M3%, M4%)
-
- ' Function 7 Limit Horizontal Motion
- M1% = 7: M3% = 100: M4% = 540
- CALL MOUSE(M1%, M2%, M3%, M4%)
-
- ' Function 8 Limit Vertical Motion
- M1% = 8: M3% = 50: M4% = 300
- CALL MOUSE(M1%, M2%, M3%, M4%)
-
- ' Draw box to show Mouse Motion
- COLOR 1
- LINE (100, 50)-(540, 50)
- LINE (540, 50)-(540, 300)
- LINE (540, 300)-(100, 300)
- LINE (100, 300)-(100, 50)
-
- ' Function 9 Set Custom Cursor
- M1% = 9: M2% = 5: M3% = 0
- CALL MOUSE(M1%, M2%, M3%, VARPTR(CURSOR(0, 0)))
-
- ' Function 1 Show Cursor
- M1% = 1
- CALL MOUSE(M1%, M2%, M3%, M4%)
-
- ' Loop until button pressed
-
- COLOR 7
- M2% = 0
- WHILE (M2% = 0)
-
- ' Function 3 Get Mouse Status
- M1% = 3
- CALL MOUSE(M1%, M2%, M3%, M4%)
-
- ' Print Cursor Location
- LOCATE 2, 2
- PRINT M3%, M4%
- WEND
-
- ' Function 0 Reset Mouse and Status
- M1% = 0
- CALL MOUSE(M1%, M2%, M3%, M4%)
-
- ELSE PRINT "Mouse Driver Not Found"
- END IF
-
- ELSE PRINT "Mouse Driver Not Found"
- END IF
-