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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0329
atuタブレットPCでstick命令を使用した場合の、左クリック(タップ)の認識について5解決


atu

リンク

2014/3/29(Sat) 23:02:08|NO.61046

タブレットPC(OSはWindows8.1)でstick命令を使用した場合、
画面タップを左クリックとして認識してくれませんでした。
色々試してみたところ、ダブルタップするか、フリックで、左クリックとして認識されました。
画面タップのみだと、マウスカーソルをタップした位置に移動しただけの扱いになるようです。
(mousex、mouseyの値は、タップした位置の値が代入されている)

HSPスクリプトエディタや、コントロールパネル、エクスプローラ等は、
画面タップで左クリックとして認識されていました。

なぜHSPで作ったものだけ?

*main
stick p1
if p1&256:mes "ok"
title "x="+mousex+" y="+mousey

await 16
goto *main

今の所、私のスクリプトが間違っているのか、OSの設定がおかしいのか、そもそもHSPの仕様なのか…
私には、どこに問題があるのか分かりませんでした。

もし、解決方法が分かる方がおられましたら、教えてください。
よろしくお願いします。



この記事に返信する


inovia

リンク

2014/3/29(Sat) 23:59:45|NO.61049


#define WM_LBUTTONDOWN 0x201 #define WM_LBUTTONUP 0x0202 oncmd gosub *wm_ldown, WM_LBUTTONDOWN oncmd gosub *wm_lup, WM_LBUTTONUP stop *wm_ldown mes "押した" return *wm_lup mes "離した" return

を実行すると自分の環境(Win7タブレット)では、
タブレットPCのタッチ操作を行った場合、すぐにマウス左ボタンを離した時の
ウィンドウメッセージ(WM_LBUTTONUP)が飛んできています。

タップした直後にマウス左ボタンが離されたことになっており、
stickですと実行時のマウスの状態の取得であるため、
取りこぼしをしていると考えられます。
自分の環境ですと、await 0 にすると多少取得できるようになりました。
(それでもかなり取りこぼしてる)



Tetr@pod

リンク

2014/3/30(Sun) 00:34:10|NO.61050


#undef stick #define global stick(%1,%2=0,%3=1)stick@hsp %1,%2,%3:if((%2)&256)=0&F_WM_LBUTTONDOWN{%1|256:F_WM_LBUTTONDOWN=0} F_WM_LBUTTONDOWN=0:goto*@f:*L_WM_LBUTTONDOWN:F_WM_LBUTTONDOWN=1:return:*@:oncmd gosub*L_WM_LBUTTONDOWN,0x0201 *main stick p1 if p1 & 256 : mes "OK" title str(p1) await 16 goto *main
やっつけ。タッチパネルを持っていないので、動作確認が出来ていません。



inovia

リンク

2014/3/30(Sun) 00:49:58|NO.61051

>やっつけ。タッチパネルを持っていないので、動作確認が出来ていません。
スレ主ではないですが、自分の環境下では取りこぼしなく取得できてます



atu

リンク

2014/3/30(Sun) 12:12:14|NO.61057

inoviaさん
Tetr@podさん
お二人のスクリプトは、どちらも正常に動作しました。
機種:東芝 dynabook Tab VT484/26K
OS:Windows8.1
HSP3.4β3を使用
きちんと、タップを認識してくれています。

どうもありがとうございました。



atu

リンク

2014/3/30(Sun) 12:12:49|NO.61058

スミマセン。解決チェックを忘れていました。



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