命令講座 <mouse命令>

Last Update : 2007/07/xx

mouse命令 (マウスカーソルの表示位置指定、表示/非表示の切り替え)

 マウスのポインタ(カーソル、矢印)を指定した位置に表示する命令です。そして、もうひとつの機能として、自ウィンドウに上でこのカーソルを表示するか非表示にするかの切り替えもできます。

 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

^

サンプルコード (カーソル表示/非表示の切り替え)

 マウスの矢印を消す。単純にマイナス値を指定します。逆に無指定の場合は表示されるようになります。あくまでHSPで表示させた自ウィンドウ上でのみ効果があります。

	button "非表示", *kesu
	button "表示", *show
	stop

*kesu
	mouse -1
	stop

*show
	mouse
	stop

 注意したいのは、ヘルプブラウザのmouse命令の説明に書かれている下の文章。つまり、上のコードでは非表示ボタンを2回押したら、逆に表示ボタンを同じ2回押さないとカーソル表示が復帰しません。ループ中などで何度も非表示を行ってしまうような処理は避けた方が無難です。

マウスカーソル表示の設定は、システムの内部カウンタにより制御されています。
OFFにした表示を、再度表示するためには、OFFにした回数分だけ表示のリクエスト
を行なう必要があるので注意してください。

 カーソル変更風処理。あくまで「〜風」で、実際にカーソルは変更してません(Win32 API関数を利用する必要あり)。

;	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

^

Copyright © 2005-2008 HSP情報サイト Let's HSP!. All rights reserved.