Retrieves the status of the mouse pointing device
Syntax
Usage
result = GetMouse (x, y [, [ wheel ] [, [ buttons ] [, [ clip ]]]])
Parameters
x
x coordinate value
y
y coordinate value
wheel
scroll wheel value
buttons
button status
clip
clip status
Return Value
0 on success or 1 on failure.
Description
GetMouse retrieves the mouse position and buttons status; information is returned in the variables passed to this function by reference. If a mouse is not available, all variables will contain the -1 value.
If in console mode, the
x and
y coordinates are the character cell coordinates the mouse is currently on; the upper left corner of the screen is at coordinates 0, 0. If the mouse moves out of the console window,
GetMouse returns the last coordinate on the window that the mouse was on.
If in graphics mode,
x and
y will always be returned in pixel coordinates still relative to the upper left corner of the screen, which is at 0,0 in this case; custom coordinates system set via
View or
Window do not affect the coordinates returned by
GetMouse. If the mouse runs off the window, all values are set to -1.
Wheel is the mouse wheel counter; rotating the wheel away from you makes the count to increase, rotating the wheel toward you makes it to decrease. At program startup or when a new graphics mode is set via
Screen, wheel position is reset to 0. FreeBASIC may not always support mouse wheels for a given platform, in which case 0 is always returned.
Buttons stores the buttons status as a bitmask: bit 0 is set if left mouse button is down; bit 1 is set if right mouse button is down; bit 2 is set if middle mouse button is down.
Clip stores the mouse clipping status; if 1, the mouse is currently clipped to the graphics window; if 0, the mouse is not clipped.
Example
' Set video mode and enter loop
Dim x As Integer, y As Integer, buttons As Integer
Dim res As Integer
Screen 13
Do
' Get mouse x, y and buttons. Discard wheel position.
res = GetMouse (x, y, , buttons)
'buttons
Locate 1, 1
If res <> 0 Then
Print "Mouse not available or not on window"
Else
Print Using "Mouse position: ###:### Buttons: "; x; y;
If buttons And 1 Then Print "L";
If buttons And 2 Then Print "R";
If buttons And 4 Then Print "M";
Print " "
End If
Loop While Inkey = ""
End
Dialect Differences
Differences from QB
See also