2009年10月8日

タッチアプリケーションのデモ

Cris Bensenさんが先日のCodeRage 4で使用したタッチアプリケーションのデモについて説明しています。

Touch Demo Part IではまずフォームにDirect2Dサーフェースを用意します。WM_ERASEBKGNDメッセージハンドラではバックグラウンドの消去をしないようにして、オーバライドしたPaintでダミーの描画を、同じくオーバライドしたResizeでDirect2Dサーフェースのリサイズを行うようにします。

Touch Demo Part IIでは1秒あたりの描画フレーム数を計測、描画する処理を追加して、10msec毎に再描画を発生させます。

Touch Demo Part IIIではタッチした位置をグラフィカルに表示するためのTGlowSpotとそのリストを用意して、これらをPaintで描画するようにします。WM_TOUCHメッセージハンドラでタッチしたポイント(複数)に対応したTGlowSpotを生成するようにして、最後にRegisterTouchWindowUnregisterTouchWindowでこのフォームでWM_TOUCHメッセージが発生するようにします。

Touch Demo Part IVではイナーシャ(inertia/慣性)をサポートするためにTGlowSpotに_IManipulationsEvents COMインタフェースを追加してその処理を行わせ、最後にマウス動作をタッチ動作に統合します。

デモはこれで完成、ということでソースコードがCodeCentralで公開されています。

27469 Touch Demo

2009/11/20追記: Part IVの内容を追加しました。

0 件のコメント: