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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0107
もっちりmousex,mousey以外のウィンドウ内のマウス座標の取得4解決


もっちり

リンク

2007/1/7(Sun) 12:17:54|NO.4682

オブジェクトの上をマウスカーソルを置くと、mousex/mouseyでの座標取得ができないため、
他の方法にて取得できないものかとginfo等で取得を試みましたが、どうしてもy座標がうまい具合に
取得できません。(数ドットずれる)
どなたかアドバイス宜しくお願いいたします。

;----------------------------------------------------------------------------
#module
   #defcfunc mouse_area int x1,int y1,int x2,int y2
      c = 0
      x = (ginfo_mx - ginfo_wx1) - ((ginfo_sizex - ginfo(12)) / 2)
      y = (ginfo_my - ginfo_wy1) - (ginfo_sizey - ginfo(13)) ;<--数ドットずれる
      title "x=" + x + ",y=" + y
      if (x >= x1) & (x <= x2) & (y >= y1) & (y <= y2) : c = 1
   return c
#global

   input a,50,20
   boxf 100,100,200,200

   repeat
      if mouse_area(100,100,200,200) : dialog "OK"
      wait 1
   loop



この記事に返信する


Shark++

リンク

2007/1/7(Sun) 12:48:43|NO.4683

一番簡単なのはScreenToClient APIを使うことでしょう


#uselib "user32.dll" #func ScreenToClient "ScreenToClient" int, var pos 100, 100 input a *main wait 1 mxy = ginfo_mx, ginfo_my ScreenToClient hwnd, mxy redraw 0 color 255,255,255 boxf color pos 0, 0 mes "mouse:"+mousex+","+mousey mes "ginfo:"+mxy.0+","+mxy.1 redraw 1 goto *main



もっちり

リンク

2007/1/7(Sun) 13:27:19|NO.4684

おお〜しっかりとy座標も取得できてます。
Shark++さん。ご丁寧にソースまで書いて頂いてありがとうございました。
旦■!(お茶とようかんどうぞ)



kz3

リンク

2007/1/8(Mon) 01:25:15|NO.4693

>Shark++さん。ご丁寧にソースまで書いて頂いてありがとうございました。

次にソースを掲載するときは、投稿フォーム上の1,2,3箇条の3番目を実行してください。
[pre]
スクリプトをコピペ
[/pre]
(ブラケットはアングルブラケットに読み替えてください)
このようにするとShark++さんのように表示されます。



もっちり

リンク

2007/1/8(Mon) 11:04:16|NO.4697

>>kz3さん
気づきませんでした。
ご指摘ありがとうございます。



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