メインマシンの環境をWindows7(x64)に移行中です。
せっかくなので、マルチタッチに対応したプログラムを作ってみました。
multitouch100115.zip (94.3 KiB)
HSP3のスクリプト3つと、実行ファイル1つが入ってます。
APIの資料としては、だいたいこのあたりを参考にしました。
http://msdn.microsoft.com/en-us/library/dd317323(VS.85).aspx
基本的に覚えておくべきコトは、タッチ入力の取得方法は2種類あるというコト。
そしてこれは、どちらか1つを選ばなくてはならないです。
RegisterTouchWindow hwnd, 0 ; タッチウインドウ登録
RegisterTouchWindow関数で、登録するとタッチ。
そうでないと、ジェスチャーのメッセージが送られてきます。
multitouch1.hspは、ジェスチャーのメッセージ(WM_GESTURE)を受け取って表示するサンプルです。
タッチ入力を解析して、ZOOM、PAN、TWO FINGER TAPなどのメッセージを送ってきます。
(ROTATEはこのままだと受け取らないです)
メッセージの詳細は、GESTUREINFO構造体に入っています。
サンプルでは、X,Y座標やArgumentsをとりあえず取り出していますが、詳しい内容は以下で解説されています。
http://msdn.microsoft.com/en-us/library/dd353232(VS.85).aspx
multitouch2.hspは、タッチのメッセージ(WM_TOUCH)を受け取って表示するサンプルです。
自力で入力をすべて解析したい人や、とりあえずタッチされた座標を知りたい時はこちらを使います。
サンプルでは、タッチされたX,Y座標を取り出していますが、詳しい内容はTOUCHINPUT構造体に入っています。
http://msdn.microsoft.com/en-us/library/dd317334(VS.85).aspx
さらに、multitouch3.hsp(及びexe)は、タッチされた座標に点を描画していく簡易的なペイントソフトの例。
タッチ入力には、TOUCHEVENTF_DOWN(押された)、TOUCHEVENTF_MOVE(動かした)、TOUCHEVENTF_UP(離された)の状態があり、
本来ならば動かした時に線をつないでいくべきですが、今は押したり動かしたりした点にとりあえず●を描画しています。
他の環境で試していないので、不具合があったらすみません。
こちらのモニタ(Acer T230H)では、同時に2点までしか入力できないのと、わりと誤差があったりしてちょっと厳しいですが、一応動作しています。
あと、ジェスチャーのメッセージが得られるまでラグが少しあって、iPhoneとかと比べると反応が悪い気がします。
これもデバイスの問題なのか、OS側のものなのか不明です。
タッチディスプレイを使ってみた感想としては、垂直の画面に対しては腕が疲れるということがよくわかって、マイノリティ・リポートのような未来は来ないのかも。
あと、何も考えずに画面を拭こうとしたら、拭いた場所すべてタッチとみなされて大変なことになりました(^^;) 拭く時は電源切らないといけないのかな…。
でも、展示とかプレゼンテーション用には良い機能だと思いますし、ゲームなどでの応用も可能性が広がるので普及はして欲しいところです。
Related posts:
- 新しいエントリ: HSPでUSB制御(AVR/HIDaspx)
- 古いエントリ: 最初のご挨拶
Comments:1
- お礼 10-12-02 (木) 19:38
-
おにたま さん
これを公開してくださったときからずっと試したくウズウズしていて
タッチパネル液晶モニタを買うのがよいかどうか、と
ずーーーーーっと悩みつづけてきた末に、
やっと先日スレートPCを入手しました。
(せっかく時代に先駆けて提供してくれたのに一年たってしまいました。面目ない)動作確認しました。バッチリです。
うごきも良いです。機種はONKYOのTW217です。
サンプルソースも非常に美しくわかりやすいので何でも作れるような気になってきます。
ありがとうございました。今後もマルチタッチ関連のAPI呼び出しモジュールが拡充されていくと嬉しいです。
その際、動作検証など必要な場合はいつでも協力させてください。
Trackbacks:0
- Trackback URL for this entry
- https://www.onionsoft.net/wp/archives/41/trackback
- Listed below are links to weblogs that reference
- HSPでマルチタッチ入力 from おにたま(オニオンソフト)のおぼえがき