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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0403
ニボッシーmousexやmouseyがオブジェクトの上だと取得できない2解決


ニボッシー

リンク

2015/4/3(Fri) 22:42:27|NO.68369

ふと気になったのですがシステム変数のmousexやmouseyって
オブジェクトの上だと座標の取得が出来ませんね。
オブジェクトの上でも座標を取得したい場合は、
ginfo_mxやginfo_myを使うしかないないでしょうか?


a="" : b="" pos 100,50 : input a,100,40 pos 200,100 : input a,300,100 pos 50,300 : mesbox b,300,100,0 repeat wait 1 title ""+mousex loop



この記事に返信する


cats

リンク

2015/4/3(Fri) 22:58:49|NO.68370

ginfo(0)とginfo(1)を使うしたないですが、ScreenToClientという関数で相対位置に変更できます。
以下全部user32で済ませたコードです。

#uselib "user32.dll" #func GetCursorPos "GetCursorPos" int #func ScreenToClient "ScreenToClient" int, int dim tagPOINT, 2 a="" : b="" pos 100,50 : input a,100,40 pos 200,100 : input a,300,100 pos 50,300 : mesbox b,300,100,0 repeat GetCursorPos varptr(tagPOINT) ScreenToClient hwnd, varptr(tagPOINT) title strf("(%d, %d)", tagPOINT(0), tagPOINT(1) ) await 15 loop
必要に応じてlimitで範囲を制限してください。



ニボッシー

リンク

2015/4/3(Fri) 23:09:55|NO.68373

>catsさん
おぉすごい!可能なんですね!
今までginfo(4)やginfo(10)などを使って座標計算して
オブジェクトの上でも座標取得をしていましたが、こちらのほうが楽で見やすいですね。
API覚えればなんでも出来るんだなぁ。。
回答有難うございました!



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