Last Update : 2007/07/xx
マウスのポインタ(カーソル、矢印)を指定した座標位置へ移動表示する命令です。もうひとつの機能として、自ウィンドウ上でこのマウスカーソルを非表示(隠す)状態に切り替えることもできます。
mouse X座標, Y座標
mouse 表示(無指定)or非表示(-1)
指定する座標位置は、自ウィンドウ内ではなくディスプレイ(モニタ画面)全体から見たものになります。
☆ 関連
HSP3 あれこれ (マウス編)
... マウス関連の命令、発展的なサンプルコード。
^
カーソルの位置指定。それぞれ単純に0を指定すれば、画面の左上に矢印が移動することになります。ginfo関数(タイプ20、21)を利用すれば、逆に画面の右下、左下、右上に移動できます。それを単純に2で割れば画面のほぼ中央です。
; 画面の左上 mouse 0, 0
; 画面の右下 mouse ginfo(20), ginfo(21)
; 画面の左下 mouse 0, ginfo(21)
; 画面の右上 mouse ginfo(20), 0
; 画面の中央 mouse ginfo(20) / 2, ginfo(21) / 2
マウスの矢印カーソルを消す処理です。mouse命令のパラメータで単純にマイナス値を指定します。逆に無指定の場合は非表示だったカーソルが表示されるようになります。これはあくまでHSPで表示させた自ウィンドウ上でのみ効果があります。
button "非表示", *kesu button "表示", *show stop *kesu mouse -1 stop *show mouse stop
注意したいのは、HSPヘルプブラウザのmouse命令の説明に書かれている下の文章です。上のコードでは非表示ボタンを2回押したら、逆に表示ボタンを同じように2回押さないとカーソル表示が復帰しません。ループ中などで何度も非表示してしまう処理になっている場合に復帰が大変になるので注意が必要です。(参照、カウンタ値の取得)
マウスカーソル表示の設定は、システムの内部カウンタにより制御されています。 OFFにした表示を、再度表示するためには、OFFにした回数分だけ表示のリクエスト を行なう必要があるので注意してください。
擬似的なカーソル変更風の処理です。あくまで「〜風」で実際にカーソル自体は変更してません。カーソルを変更したい場合は、Win32 API関数を利用する必要があります。(参照、HSP3 あれこれ <マウス>)
// mouse命令 サンプルスクリプト (by Kpan) ; バッファ画面 buffer 1 ; カーソル用イメージ (絵文字フォントWingdings利用) color 0, 0, $FF font "Wingdings", 40, 16 mes "?" ; メイン画面 screen 0 ; カーソル非表示 mouse -1 repeat redraw 0 ; 塗りつぶし color $FF, $FF, $FF boxf ; バッファ画面から切り取ってくる pos mousex, mousey gcopy 1, 0, 0, 40, 40 redraw await 16 loop