HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0205
mmpマウスを動かす3解決


mmp

リンク

2009/2/5(Thu) 23:24:06|NO.23234

こんにちは。
下のような感じでマウスにくっついて動く四角を作ってます。

それで、マウスがウィンドウの外に出ても四角が
ウィンドウ内から出ない範囲でマウスに反応して動くということがしたいんです。
例えばウィンドウの横からウィンドウの外に出たら、それ以上四角が横にこないけど
縦にだけは動く、みたいな。
なんとなくmousex<0の時どうにかする?と考えたのですが、
マウスを早く動かしてウィンドウの左外に出ると、mousexなんかが0になりません。

どうすれば上手くいくようになるでしょうか?
初心者で、凄く簡単な所でつまづいてるとは思いますが、
よかればヒントか何かよろしくお願いします。


screen 0,640,480 boxf 0,0,640,480 font "MS ゴシック",17,1 repeat redraw 0 pos mousex-9,mousey-7 color 0,0,0 : boxf 0,0,640,480 color 255,255,255 : mes "■" wait 1 redraw 1 loop



この記事に返信する


check

リンク

2009/2/5(Thu) 23:30:21|NO.23235

ginfo_mx、ginfo_myを使うとスクリーン全体でのマウス座標を取得できる。



SYAM

リンク

2009/2/6(Fri) 06:06:29|NO.23236

スクリーン全体での、クライアント領域(HSPでつくっているウインドウの中身の部分)の座標も判らないといけませんね。
…でもそれを直接取得する手段が、HSPにはない気がします。あったらごめんなさい。


ginfo_wx1, ginfo_wx2, ginfo_wy1, ginfo_wy2, ginfo_winx, ginfo_winyを使って強引に…

wx=(ginfo_wx2-ginfo_wx1-ginfo_winx)/2 x=ginfo_mx-ginfo_wx1-wx y=ginfo_my-ginfo_wy2+ginfo_winy+wx title ""+mousex+"("+x+")/"+mousey+"("+y+")" ; 比較してみましょう
こんな計算で、クライアント領域内でのマウスカーソル座標を計算できます。
mousex, mousey とどう違うのか、試してみてください。


…しかしこれ、他にHSPだけでできる方法ないのかな…。ありそうだな…。



mmp

リンク

2009/2/6(Fri) 07:48:19|NO.23238

checkさん、SYAMさん
ありがとうございます!

ginfo_mxはヘルプで見つけてたのですがどう使うのかよくわからず・・・
SYAMさんが教えてくれたものとif x<0〜とやってみると上手くいきました!
本当にありがとうございました!



ONION software Copyright 1997-2018(c) All rights reserved.