• 締切済み

タッチパッドのタッチ座標取得

C言語の命令で、ノートパソコンのタッチパッドがどの辺に触れられているかわかる命令を探しています。 例えば、タッチパッドの一番左上に触れたらX座標が0Y座標が0と表示されるプログラムを作りたいと思っております。 どうしてもわからないので、質問させていただきました。 すみませんが、よろしくお願いいたします。

みんなの回答

  • arain
  • ベストアンサー率27% (292/1049)
回答No.4

ものにもよりますが、 タッチパネルの入力は基本HIDクラスになるので、Windows標準のマウスイベントとAPIで取得できる場合もあります。 一般的なアプリがタッチパネル付きLCDでも操作できるのはそのためです。 但し、どの「程度の精度か」「ドラッグアンドドロップ」の対応については製品によります。

ws_okwav
質問者

お礼

回答ありがとうございます。 私の使っているノートパソコンには タッチしてる座標を取得する「MoodPad」が搭載されております。 ですので、可能だと思っておりました・・・。

  • annyG
  • ベストアンサー率25% (10/39)
回答No.3

ああ、すみません。確かにマウスの座標をとる方法とは全然違いますね。ご質問をよく読めばわかることでした。失礼しました。 で、申し訳ないのですが、全然わかりません。 ただ、素人ながら、それが非常に難しいであろうということはわかります。 私の使っているPCでは、タッチパッドの端をなぞると、センターホイールを回すのと同じ効果があるのですが、これはおそらくOSレベルでそのように認識されてしまっていて、OSのAPIコールレベルではそれがマウスなのかタッチパッドなのかは意識しておらず、判別もしていないと思います。つまり、ドライバレベルで最適化されてしまっているように思うわけです。 ですので、タッチパッドのドライバからそれを取る必要があるように思いますが、それは各PCで仕様が全然違うでしょうし、そのPCでだけプログラムが動けばいい、ということであったとしても、ドライバがその方法を公開しているかどうかも怪しいと思います。(多分していないと思います) 全然役立たずな回答で申し訳ありません。

ws_okwav
質問者

お礼

ありがとうございます。 でも、そういうインターフェースが出てないのも 実現が難しいというのであれば・・・と思いました。 探してみましたが、やっぱり見つからないし どうにかならないかなぁ・・・。

  • sigint_m
  • ベストアンサー率42% (6/14)
回答No.2

結論から言うとほぼ不可能でしょう。 タッチパッド(マウス)からOSへは、「どの方向に」「どれだけの移動量」があったかという情報しかいっていません。マウスカーソルを動かすのには、現在のポインタの位置と上記の2つのパラメータがあれば事足りますよね? 画面の中央にマウスカーソルがあるときにタッチパッドの右下に指をおいた場合、カーソルが右下に移動するわけではなく、指を置いた位置から指がどう動いたかによってカーソルも移動するわけで、このことからもタッチパッドの絶対座標が必要ない(OSが取り扱わない)ことがわかると思います。 よって、OS(Windows)より上位レベルでタッチパッドの絶対座標を取得はできないと思います。 しいて言うなら、タッチパッドの絶対座標から上記の2要素に変換しているドライバに割り込めば取得は不可能ではないかもしれませんが、そもそもハードウェアで処理していてタッチパッドのモジュール外からは物理的に参照できない可能性が大ですし、仮にwindowsのドライバによる処理方式を採っていて割り込めたとしても、そのタッチパッドの機種限定のプログラムになってしまいます。

ws_okwav
質問者

お礼

回答ありがとうございます 下記のサイトのように ttp://shin-ishimaru.cocolog-nifty.com/blog/2008/02/quartzcomposerk_ddfe.html ノートパソコンのタッチパネルで実現できればと思ったのですが・・・。

  • annyG
  • ベストアンサー率25% (10/39)
回答No.1

マウスの座標を取るのと同じ方法だと思いますが? あと、Cの質問ならコンパイラの種類とバージョン、OSくらいは書いた方がいいかと。それによって答えが違いますからね。

ws_okwav
質問者

お礼

回答ありがとうございます 説明不足でした。 まず使っているコンパイラは、VisualStudio 2005です。 オペレーションシステムはWindowsXPです。 うまく説明できませんが 触れているタッチパネルの座標を取得したいのです。 例えばタッチパネルの真ん中を触れるとX,Y座標ともに0.5 一番右下を触れるとX,Y座標ともに1.0と表示されるようにしたいのです。

関連するQ&A