この記事は機械翻訳されたものです。
Windows の内側 7
Windows 7 の multiTouch の機能
Yochay Kiriaty
この資料では次の内容について説明します:
|
この資料では、次のテクノロジを使用してください。 Windows 7 |
この資料は、Windows 7 のプレリリース版に基づいています。 詳細については、変更対象があります。
内容
Windows 7 の Multitouch の概要
Windows 7 の Multitouch のプラットフォームのプログラミング モデル
ジェスチャを使用します。
タッチ メッセージの元に Windows を使用します。
結果
これは、Windows 7 に関する記事の系列では、3 番目の資料です。 開発者できますタップにすると、Windows 7 で shine アプリケーションを作成する新しいユーザー エクスペリエンスに重点を系列。 第 1 部はライブラリについて説明します。 第 2 部はタスク バーの API について説明します。 第 3 部では、Windows 7 の multitouch の機能について説明します。 この資料の最大限に活用を得られるように Windows 7 Release Candidate 今すぐダウンロードします。
Windows 7 の Multitouch の概要
Windows 7 で 私たちが追加タッチ、Windows の経験、マウスとキーボードと共に、PC との対話を別の方法として、最上位の市民を修正すること。 近年が、非常に正のユーザー エクスペリエンスを生成する multitouch デバイスのさまざまなきたですが。 したがって、コア機能として Windows 7 で multitouch ようなサポートを導入する Windows の自然なはのみです。
Windows 7 の Multitouch プラットフォームのコンピューターと直接対話する自由があります。 たとえば、するは出力に達すると速度が遅くなるスクロール Windows エクスプローラーから直接画像または flick し、すばやく移動できます。 特別な Windows 7 の Multitouch シェルを作成 didn’t を理解する大切です。 multitouch デバイス上でのみ使用できる特殊なエクスプローラーがありません。 最も簡単な例は、Windows 7 タスク バーのジャンプ一覧は。 マウスを使用して、タスク バーの任意のアイコンを右クリックをしたとその対応するジャンプ一覧表示されます。 たとえば、Windows Live Messenger のアイコンを右クリックして Live Messenger のジャンプ一覧表示されます。 しかし、右方法をクリックした multitouch を使用してでしょうか。 単純 Live Messenger のアイコンを修正し、ドラッグして、指でように、、 図 1:
図 1 を使用して Multitouch で Live Messenger の飛び越し点の一覧
そのドラッグ ジェスチャを実行する Live Messenger のジャンプ リストを示します。 図 2 で、表示できますとは、タッチ トリガー ジャンプ リストが [標準マウスの右ボタンでクリック後に移動一覧として同じコンテンツ表示されます。 右側にある図タッチを使用して、Live Messenger のジャンプ リストに表示されます。 multitouch を有効にした後に移動一覧の各項目間の間隔が間の間隔より大きい一覧の後に移動] 既定値は、左側のイメージ内の各項目を右クリックします。
図 2 Multitouch と標準のビューのリストをジャンプ
Windows Live Messenger は Windows 7 の一連の新しい UI、タッチ シナリオに対してのみを作成する doesn’t が代わりに、既存のインフラストラクチャにブレンドによって位置の 1 つだけの例。 タスク バーは 1 つだけの例、XPS ビューアー、Windows フォト ビューアー、および IE8 Windows 7 に付属する多くの multitouch 最適化のエクスペリエンスです。
Windows 7 の Multitouch のプラットフォームのプログラミング モデル
アプリケーションのすべての well-rounded の Windows のタッチ ソリューションを提供するには、のさまざまなレベルのサポートを提供する、Windows のタッチ プラットフォーム。 いくつかのシナリオを Windows のタッチ プラットフォーム機能を使用してアプリケーションを追加することができますがあります。 特定なアプローチを採用する前と正確に実行するアプリケーションで検討します。
レガシ サポート 既存のアプリケーションを大規模なインストール ベースで既にある前提としていまして let’s。 自分で思うかもしれませんはマイ ユーザー multitouch 経験 Windows 7 multitouch 有効なコンピューターで、アプリケーションを実行しますか。 さいわいは、Windows 7 の Multitouch プラットフォームはタッチ未対応あり multitouch をサポートするために作られていないアプリケーションに対して、空きの既定のエクスペリエンスを提供します。 具体的には、いくつかの基本的なジェスチャの空き] ボックスのサポートを提供するとします。 言い換えると、いくつかの基本的なジェスチャ作業し、アプリケーションで、目的の影響を予測できます。 基本的なジェスチャは 1 つの指またはパン、2 つの指ズーム、およびフリック ジェスチャ、Windows Vista のタイム フレームで導入された 2 つの指を含めます。
基本の Multitouch サポートの追加 ここで、他の動作だけでなくを直接ジェスチャのサポートし、ユーザー インターフェイス アプリケーションよりタッチ-フレンドリ単純なジェスチャのサポートを超えるする変更追加焦点おします。
1 つの例おようこの資料の冒頭の近くにレビューは既にとしては、タッチ - 最適化タスク バーを表示後に移動をされます。 getMessageExtraInfo 方法を使用、タスク バーできる入力メッセージの発行元をトレース タッチ メッセージがあるかどうかを判定してそれに従って応答します。
さらに、ジェスチャを使用して multitouch サポートの向上にアプリケーションを強化できます。 ジェスチャに直接応答するアプリケーションは、ユーザーが、タッチ対応のデバイスにかかるときの動作がの完全な制御をできます。 たとえば、Windows 7 同梱 Windows フォト ビューアー。 フォト ビューアーのアプリケーションで、ビューアーは、ズーム ジェスチャが元の場所の詳細についてを受け取ります。 つまり、ズーム ジェスチャ--X 特定、中心点に関する情報を格納され、ジェスチャの中央の周囲の焦点をズームのジェスチャでと、フォト ビューアーできます--Y 座標。 は、Windows フォト ビューアー アプリケーションもパンおよび回転のジェスチャを使用経験、比較的小さな作業を表示するイメージを非常に優れたできます。
ジェスチャ] で、既定の動作をパンもオーバーライドできます。 たとえば、Web ページやドキュメントのように主に垂直方向にスクロールするテキストを中心にしたウィンドウ動作する、既定タッチ スクロールはようにデザインされた。 スクロールではなくテキストの選択範囲が水平方向にドラッグします。 ほとんどのアプリケーションでこのそれでだけがあります。 場合、アプリケーション実際にする必要が水平スクロールをサポートしますか。 また、一部のアプリケーション、既定のスクロールことができます表示モジュールを高速すぎるまたはも遅いこと。 ジェスチャのサポート、既定の動作をパンし、アプリケーションのニーズ、最適化できます。
経験が Multitouch の最適化 最も良い状況シナリオは、アプリケーションはサポートの multitouch を地面からデザイン時です。 これらのアプリケーションは、Windows メッセージの修正メッセージ]、[WM_TOUCH の上に構築します。 このメッセージは、アプリケーションの生のタッチ データを提供し、これらのメッセージを使用して複数タッチ ポイントを処理ことができます。 以前記載されているほとんどのジェスチャは、2-指ジェスチャ、WM_TOUCH メッセージを受け取れるように、基になると、多くの同時タッチ ポイント タッチ機密性の高いハードウェアをサポートするようです。
Windows 7 の Multitouch プラットフォームは、操作とタッチ メッセージを解釈するための inertia プロセッサにも提供します。 黒いボックスが使用されているオブジェクトを入力として受信すると、すべての関連タッチ メッセージ操作と考えてください。 指の移動の結果として発生した変換を表す 2 次元のアフィン変換行列になります。 たとえば、写真編集アプリケーションを作成するが場合、は、同じ時間使用を回転するには多くの指に指定このサイズを変更するの変換、写真、および操作プロセスは、オブジェクトで反映する変更を提供するただしで 2 つの写真を取得でした。
inertia は、アプリケーションのごく基本的な物理学モデルを提供し、オブジェクトの位置に停止ではなく、単純な切り替え効果を作成する、高度なタッチを要するデバイスから、人差し指を選択した後もオブジェクトのスムーズな移行を続行する簡単な方法提供します。
ジェスチャを使用します。
ユーザー接触、タッチ依存 Windows 7 が有効になっているデバイス、常に既定では、アプリケーションにジェスチャ メッセージ、WM_GESTURE が送信 Windows 7 の Multitouch プラットフォームします。 これは、無料の既定の動作でき、脱退ようなメッセージ受信を停止する場合をすることは。
ジェスチャは 1 つまたは 2 つの指タッチ入力何らかのユーザーが実行する定義済みのアクション (ジェスチャ) に変換するように見なさ。 1 回検出 (オペレーティング システムがすべての作業の) を行う、オペレーティング システムは、アプリケーションにジェスチャ メッセージを送信します。 このメッセージ内にデコードし、作業に必要なすべての情報。 Windows 7 は、次のジェスチャをサポートします。
- ズーム
- 1 つの指と 2 つの人差し指のパン
- 回転します。
- 2 つの指タップ
- プレス アンド タップ
WM_Gesture のメッセージの処理 ジェスチャを使用するためには、アプリケーションに送信される WM_GESTURE メッセージを処理必要があります。 Win32 プログラマである場合、アプリケーションの WndProc 関数内の WM_GESTURE メッセージに対して確認できます。
WM_GESTURE はすべてジェスチャのための汎用メッセージです。 したがって、どのジェスチャを処理する必要がありますを決定するためにまずをジェスチャ メッセージをデコードします。 ジェスチャに関する情報は、lParam パラメーターにし、次のコード スニペットのように、ジェスチャのメッセージをデコードする、GetGestureInfo、特別な関数を使用すます。
GESTUREINFO gi;
ZeroMemory(&gi, sizeof(GESTUREINFO));
gi.cbSize = sizeof(gi);
BOOL bResult = GetGestureInfo((HGESTUREINFO)lParam, &gi);
GESTUREINFO 構造体を取得したら、dwID を識別するジェスチャが実行されたチェックできます。 GESTUREINFO 構造には、他のいくつかの重要なメンバーが含まれます。
- cbSize -(バイト単位)、構造のサイズ
- ptsLocation - ジェスチャに関連付けられた座標を含む、ポイントの構造体。 座標は、画面の原点を基準に、常に
- dwFlags -ジェスチャの状態など、まず inertia と終了
- ullArguments - 8 バイトに収まるジェスチャの引数を含む 64 ビットの符号なし整数。 これは、ジェスチャの種類ごとに一意な余分な情報です。
この知識をおを移動してように、すべてのジェスチャを処理する完全なスイッチ-大文字と小文字メソッドを記述 図 3 .
図 3 スイッチ-大文字と小文字の方法
void CMTTestDlg::DecodeGesture(WPARAM wParam, LPARAM lParam)
{
GESTUREINFO gi;
ZeroMemory(&gi, sizeof(GESTUREINFO));
GetGestureInfo((HGESTUREINFO)lParam, &gi);
switch (gi.dwID){
case GID_ZOOM:
// Code for zooming goes here
break;
case GID_PAN:
break;
case GID_ROTATE:
break;
case GID_TWOFINGERTAP:
break;
case GID_PRESSANDTAP:
break;
default:
// You have encountered an unknown gesture
break;
CloseGestureInfoHandle((HGESTUREINFO)lParam);
}
ジェスチャについてハンドラーに関連付けられたリソースを閉じる CloseGestureInfoHandle 関数を呼び出す関数の末尾を注意してください。 WM_GESTURE メッセージを処理する場合は、担当のこの関数を使用してハンドルを閉じるです。 これを行わないメモリ リーク可能性があります。
ジェスチャ メッセージの処理、ジェスチャのメッセージをデコードし、アプリケーション ニーズに合わせて、特定のジェスチャを処理、構成を含む固定、フローがあります。 上記のコードでよう、これを行うには難しくはありません。
ここでの他すべてのジェスチャ外観が理解できるには拡大/縮小ジェスチャ、詳しく let’s 確認します。
拡大/縮小ジェスチャを使用してオブジェクトは拡大/縮小するには
ズーム ジェスチャは縮小表示する相互に、人差し指を近づけるを移動し、人差し指をズームインして、コンテンツを拡大する距離を移動する場所の 2 つのタッチ ポイント間の"pinch"の移動とユーザーによって認識された通常です。 ズーム ジェスチャでは、オブジェクトのサイズを縮小できます。 図 4 は、ズームのジェスチャのしくみを示します。
図 4 の ジェスチャの拡大
これで、let’s で、目的のズーム効果を実現するには、GID_ZOOM スイッチを実装するどのようなコードを表示します。
ジェスチャ情報-構造にを使用して、ジェスチャの状態が判定の次の値を含めることができます、dwFlags メンバーが含まれます。
- GF_BEGIN – ジェスチャが開始している、最初の WM_Gesture メッセージで受信したことを示します
- GF_INERTIA – ジェスチャが inertia をトリガーすることを示します。
- GF_END – ジェスチャが完了したことを示します。
- 、 既定値 スイッチ-のジェスチャ メッセージ部分を示し、、通常、デルタと呼ば
おを使用して、GF_BEGIN フラグ変数にタッチ ポイントの開始座標を次の手順を参照として保存します。 ptsLocation、_ptFirst 変数に保存します。 ズームのジェスチャで、ptsLocation、ズームの中心を示します。
次のズーム メッセージ到着の既定場合によって処理されます。 _ptSecond 変数に座標を保存します。 次に、ズームの中心点、ズームを計算おし最終お更新四角形 (我々 グラフィック オブジェクト) をズーム比率とズームの中心点を反映します。 図 5 は、これらの引数を示します。
図 5 GID_ZOOM スイッチ
case GID_ZOOM:
switch(gi.dwFlags)
{
case GF_BEGIN:
_dwArguments = LODWORD(gi.ullArguments);
_ptFirst.x = gi.ptsLocation.x;
_ptFirst.y = gi.ptsLocation.y;
ScreenToClient(hWnd,&_ptFirst);
break;
default:
// We read here the second point of the gesture. This is middle point between fingers.
_ptSecond.x = gi.ptsLocation.x;
_ptSecond.y = gi.ptsLocation.y;
ScreenToClient(hWnd,&_ptSecond);
// We have to calculate zoom center point
ptZoomCenter.x = (_ptFirst.x + _ptSecond.x)/2;
ptZoomCenter.y = (_ptFirst.y + _ptSecond.y)/2;
// The zoom factor is the ratio between the new and the old distance.
k = (double)(LODWORD(gi.ullArguments))/(double)(_dwArguments);
// Now we process zooming in/out of the object
ProcessZoom(k,ptZoomCenter.x,ptZoomCenter.y);
InvalidateRect(hWnd,NULL,TRUE);
// Now we have to store new information as a starting information for the next step
_ptFirst = _ptSecond;
_dwArguments = LODWORD(gi.ullArguments);
break;
}
break;
既定ケース ハンドラー、内で、ジェスチャの場所を保存し、2 つの組の (現在のタッチ点と 1 つ前を表す) ポイントおズーム中央位置の計算から ptZoomCenter に格納します。 おも 2 つのポイント間の比率を計算して、ズームの倍率を計算します。 ProcessZoom ヘルパー関数の呼び出しはズーム ファクターと中心点を反映する新しい座標を更新します。
Windows 7 既定ジェスチャ部分の処理は似てに複数の上記のジェスチャの処理を拡大します。 すべてのジェスチャの同じフローに従いして、ユース ケースのシナリオごとのジェスチャでごと、内部の論理の実装だけとは異なります。 次に、最適なモデルをレビューし、生の受信および処理するための API に急降下タッチ イベントします。
タッチ メッセージの元に Windows を使用します。
生のタッチ メッセージの受信を開始、するために WM_TOUCH、まずアプリケーションへのタッチ メッセージの送信を開始および既定ジェスチャ メッセージの送信を停止するオペレーティング システムを確認します。 この操作を行うには、RegisterTouchWindow(HWND hWnd, ULONG uFlags) 関数を呼び出してします。 hWnd 1 つを登録するこの関数を呼び出しているタッチ対応として要素 (通常はウィンドウ)。
ジェスチャ] で、アプリケーションでの WndProc WM_TOUCH メッセージを処理関数です。 1 つ WM_TOUCH メッセージにはいくつかの異なるを含めることがでくタッチの配列にアンパックする必要があります、“ タッチ ポイント メッセージ"構造体を入力します。 TOUCHINPUT 構造体、その配列内の各構造を 1 つのタッチ ポイントからデータを表します位置の配列に WM_TOUCH メッセージをアンパックする標準的な方法は。 図 6 に示すように、新しく作成したタッチ ポイント配列、および、アンパックする GetTouchInputInfo(HTOUCHINPUT hTouchInput, UINT cInputs, PTOUCHINPUT pInputs, int cbSize) 関数を呼び出すを渡して、lParam、WM_TOUCH のメッセージの必要があります。
図 6 アンパック WM_TOUCH
case WM_TOUCH:
{
unsigned int numInputs = (unsigned int) wParam;
TOUCHINPUT* ti = new TOUCHINPUT[numInputs];
if(GetTouchInputInfo((HTOUCHINPUT)lParam, numInputs, ti, sizeof(TOUCHINPUT)))
{
// Handle each contact point
for(unsigned int i=0; i< numInputs; ++i)
{
/* handle ti[i] */
}
}
CloseTouchInputHandle((HTOUCHINPUT)lParam);
delete [] ti;
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
TOUCHPOINT ti お入力方法を確認できますここで各タッチ ポイントからのデータを含む配列。 次に、私たち反復、タッチ ポイント配列各タッチ ポイント、ハンドル ti [i] コメントに、ロジックを適用します。 タッチ ハンドルをクリーンアップする必要が最後に、CloseTouchInputHandle(HTOUCHINPUT hTouchInput) を呼び出して、元の WinProc の lParam を渡します。 操作を行うに失敗したメモリ リークになります。
上記のコードは、WM_TOUCH のメッセージを処理する最初の手順を表します。 単一のタッチ入力構造、TOUCHINPUT を使用する必要がある、1 つのタッチ ポイントの必要な情報がすべて記載されています。
- dwID -タッチ ポイント識別子から、特定のタッチ入力を区別します。
- dwFlags – は、タッチ ポイントの状態を指定するビット フラグのセット
- X and Y タッチ ポイント (基本的に各タッチ ポイントの場所) の座標
- dwTime – はミリ秒単位で、イベントは、時間の手順
- dwMask – 省略可能なフィールドのうち、構造体で指定するビット フラグのセットが有効な値を格納
[X] および [Y 座標は物理画面座標 (つまり、centa-ピクセル) のピクセルの 1/100 ことに重要です。 この extra-fine 解像度の昇格高精度と正確な手書き認識ような細かい解決必要とする他のアプリケーション。 ほとんどのシナリオでタッチ ポイント X 座標と Y 座標をこれらの座標を使用して開始する前に使用可能な画面座標にタッチ ポイント座標を変換する 100 で除算する必要があります。
今のところでタッチ メッセージの処理方法を理解して、移動を上記 WM_TOUCH ハンドラーは我々 に実際のロジックを追加するすべての情報をおきます。 この知識を使用し、スクラッチ パッドとも呼ばれ、multitouch ペイント アプリケーションをビルド let’s します。
タッチ ポイントの ID を追跡します。 スクラッチ パッド アプリケーションを作成するには各タッチ ポイント移動および、フォームとそのパスに沿った線を描画し、パスを追跡します。 異なるタッチ ポイントを区別して実際に処理する各タッチ ポイント正しく確認、別の色タッチ各点に割り当てます。
タッチ入力構造体の配列にタッチ メッセージをアンパック後に ti、タッチ ポイントの各州の確認をタッチ状態ごとに異なるロジックを適用する必要があります。 スクラッチ パッド例では、新しいタッチ ポイントは、下向きの状態で indentified TOUCHEVENTF_DOWN。 新しいタッチ ポイント ID を登録してそれに色を割り当てます。 タッチ ポイントが削除すると、TOUCHEVENTF_UP、最後の描画を完了して登録解除のタッチ ポイントの ID。 間に、イベント、多くの場合受け取ります多くのメッセージを移動、TOUCHEVENTF_MOVE。 移動メッセージごとに、既存の行に、新しいポイントを追加し、線の新しいセグメントを描画します。 図 7 は、全体の WM_TOUCH を示していますハンドラーの multitouch をサポートする、スクラッチ パッド アプリケーションが必要ですが。
図 7 WM_TOUCH ハンドラー
case WM_TOUCH:
{
unsigned int numInputs = (unsigned int) wParam;
TOUCHINPUT* ti = new TOUCHINPUT[numInputs];
if(GetTouchInputInfo((HTOUCHINPUT)lParam, numInputs, ti, sizeof(TOUCHINPUT)))
{
// For each contact, dispatch the message to the appropriate message handler.
for(unsigned int i=0; i< numInputs; ++i)
{
if(ti[i].dwFlags & TOUCHEVENTF_DOWN)
{
OnTouchDownHandler(hWnd, ti[i]);
}
else if(ti[i].dwFlags & TOUCHEVENTF_MOVE)
{
OnTouchMoveHandler(hWnd, ti[i]);
}
else if(ti[i].dwFlags & TOUCHEVENTF_UP)
{
OnTouchUpHandler(hWnd, ti[i]);
}
}
}
CloseTouchInputHandle((HTOUCHINPUT)lParam);
delete [] ti;
}
break;
キーには特定タッチ ストロークの期間を通じて同じ、dwID が使用して個々 のタッチ ポイントを追跡するのです。 OnTouchDownHandler、ヘルパー関数では基本的に線を表す点の配列である CStroke オブジェクトにこの ID を割り当てます。 この行は、タッチ依存デバイス経由で指をドラッグするパス形式です。 アプリケーションをサポートを実際には、画面に線を描画全体のコード サンプルをカバーする私たちはしません。 multitouch をサポートするために必要な基本的に、上記のコード サンプル参照できます。
スクラッチ パッドのアプリケーションの出力を表示します。 図 8 .
図 8 スクラッチ アプリケーションの出力
既定ケース ハンドラー、内で、ジェスチャの場所を保存し、2 つの組の (現在のタッチ点と 1 つ前を表す) ポイントおズーム中央位置の計算から ptZoomCenter に格納します。 おも 2 つのポイント間の比率を計算して、ズームの倍率を計算します。 ProcessZoom ヘルパー関数の呼び出しはズーム ファクターと中心点を反映する新しい座標を更新します。
Windows 7 既定ジェスチャ部分の処理は似てに複数の上記のジェスチャの処理を拡大します。 すべてのジェスチャの同じフローに従いして、ユース ケースのシナリオごとのジェスチャでごと、内部の論理の実装だけとは異なります。 次に、最適なモデルをレビューし、生の受信および処理するための API に急降下タッチ イベントします。
タッチ メッセージの元に Windows を使用します。
生のタッチ メッセージの受信を開始、するために WM_TOUCH、まずアプリケーションへのタッチ メッセージの送信を開始および既定ジェスチャ メッセージの送信を停止するオペレーティング システムを確認します。 この操作を行うには、RegisterTouchWindow(HWND hWnd, ULONG uFlags) 関数を呼び出してします。 hWnd 1 つを登録するこの関数を呼び出しているタッチ対応として要素 (通常はウィンドウ)。
ジェスチャ] で、アプリケーションでの WndProc WM_TOUCH メッセージを処理関数です。 1 つ WM_TOUCH メッセージにはいくつかの異なるを含めることがでくタッチの配列にアンパックする必要があります、“ タッチ ポイント メッセージ"構造体を入力します。 TOUCHINPUT 構造体、その配列内の各構造を 1 つのタッチ ポイントからデータを表します位置の配列に WM_TOUCH メッセージをアンパックする標準的な方法は。 図 6 に示すように、新しく作成したタッチ ポイント配列、および、アンパックする GetTouchInputInfo(HTOUCHINPUT hTouchInput, UINT cInputs, PTOUCHINPUT pInputs, int cbSize) 関数を呼び出すを渡して、lParam、WM_TOUCH のメッセージの必要があります。
結果
Windows 7 の Multitouch プラットフォームは、非常に強力な開発プラットフォームです。 高度な生のタッチ メッセージに既定のジェスチャのサポートを実装するからできます多数の比較的単純な実装で電源。
プラットフォーム操作および inertia プロセッサもします。 操作は、多数の方法、ジェスチャに似ていますより強力なは。 操作は任意指定のオブジェクト数の変換操作を簡略化に使用されます。 回転、拡大縮小などの特定のコンポーネントのジェスチャの組み合わせを実行でき、同時に、特定のオブジェクトで拡張できます。 操作プロセッサを 2 次元の生成で変換を表す「変換行列」と Y 座標、スケール、および回転を一定期間実行、タッチ ポイントの移動の結果として、オブジェクトが発生しました。 最後のタッチ ポイントを抜粋していますとでは、停止、なく位置で突然停止してスムーズになったために、単純な物理学オブジェクトに適用する場合があります。 その滑らかな動きをサポートするには、Windows 7 の multitouch プラットフォームは、Inertia API を提供します。
これらの API は、次の MSDN 資料のトピックになります。
Yochay Kiriaty は、マイクロソフトは、Windows 7 の重点テクニカル エバンジェリストです。 ソフトウェア開発で以上、10 年経験を持ってください。 彼が書き込まれてし、taught のアカデミック コンピューター サイエンス コースして、作業中の共同作成者にはWindows のブログ.