Getmouse は、マウスの位置と、ボタンの状態を検索します。
情報は、参考で、この関数にわたされた変数を通して、返されます。
マウスが使えない場合は、すべての変数の値は、
-1 になります。
実行画面モードで、
x ,
y 座標は、そのときマウスが乗っている位置の、文字セルの座標を示します;
画面の左上隅は、座標
0, 0 になります。
マウスが、実行画面から外に出て行くと、
Getmouse は、マウスがいた画面の、最後の座標を返します。
実行画面モードか全画面にあるなら、スクロール・ホイール値は、返されません。
描画モードでは、
x と
y は、画面の左上隅を起点にした画素座標を返します。画面の左上隅の場合は、0,0 です。
View か
Window で設定されるカスタム座標系は、
Getmouse によって返される座標に影響しません。
マウスが描画ウインドウから外に出ると、すべての値は
-1 になります。そして、関数の戻り値は
1 に設定されます。
また、関数の戻り値がテストされないならば、これはボタンと車輪のために事実と異なる解釈を与える場合があります。
Wheel は、マウス・ホイール・カウンタです。
ホイールを、向こうに押し出すように回転させると、カウントは増加します。手前に向かってホイールを回転させると、カウントは減少します。
プログラムが開始するとき、または、新しい描画モードが
Screen (描画) で設定されるとき、ホイール位置は 0 にリセットされます。
FreeBASICは、全てのプラットホームで、マウス・ホイールをサポートするわけではありません。サポートされない場合、常に 0 を返します。
Buttons は、ビットマスクとしてボタンの状態を格納します:
マウス左ボタンが押されていると、ビット 0 が設定されます。
マウス右ボタンが押されていると、ビット 1 が設定されます。
マウス中央ボタン/ホイールが押されていると、ビット 2 が設定されます。
Clip は、マウス切り取り状態を格納します。
マウスが、描画ウィンドウを切り取ったとき、
1 になります。
0 なら、マウスは切り取っていません。
Getmouse が返すエラーコードは、次の行で
Err を使って確認できます。 関数バージョンの
Getmouse はエラーコードを直接 32 bit
Long で返します。
警告: フラグ GFX_SHAPED_WINDOW が設定(
Screenres を参照)されているとき、
Getmouse は色付き領域、つまり color <> RGBA(255, 0, 255, alpha) の部分でのみ有効です。
'例 2: type-union-type structure タイプ・ユニオン・タイプ構造
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
Type mouse
As Long res
As Long x, y, wheel, clip
Union
buttons
As Long
Type
Left:
1 As Long
Right:
1 As Long
middle:
1 As Long
End Type
End Union
End Type
Screen 11
Dim As mouse m
Do
m.res =
GetMouse
( m.x, m.y, m.wheel, m.buttons, m.clip
)
ScreenLock
Cls
Print Using "res = #";
m.res
Print Using "x = ###;
y = ###;
wheel = +###;
clip = ##";
m.x;
m.y;
m.wheel;
m.clip
Print Using "buttons = ##;
left = #;
middle = #;
right = #";
m.buttons;
m.left;
m.middle;
m.right
ScreenUnlock
Sleep 10,
1
Loop While Inkey =
""