Windows タッチ ジェスチャの概要

このセクションでは、Windows Touch でサポートされるさまざまなジェスチャについて説明します。

ジェスチャの概要

Windows Touch を使用すると、1 つの連絡先と複数の連絡先をサポートする複数のジェスチャを使用できます。 次の図は、Windows 7 でサポートされているさまざまなジェスチャを示しています。

Windows 7 で Windows タッチがサポートするジェスチャを示す図

注意

一部の認識エンジンは、連絡先が互いに離れている場合に、複数の連絡先でジェスチャを解釈する方が信頼性が高くなります。

レガシ サポート

レガシ サポートの場合、既定のジェスチャ ハンドラーは、以前のバージョンの Windows で使用されていた Windows メッセージにいくつかのジェスチャをマップします。 次の表は、ジェスチャが従来のメッセージにどのようにマップされるかを示しています。

ジェスチャ 説明 生成されたメッセージ
パン パン ジェスチャは、スクロール ホイールを使用するようにマップされます。 WM_VSCROLL
WM_HSCROLL
長押し 長押しジェスチャは、マウスを右クリックするようにマップされます。 WM_RBUTTONDOWN
WM_RBUTTONUP
Zoom ズーム ジェスチャは、Ctrl キーを押しながらマウス ホイールを回転させてスクロールするのと似たメッセージをトリガーします。 wParamMK_CONTROLを設定したWM_MOUSEWHEEL

Windows タッチ ジェスチャの解釈

Windows Touch ジェスチャは、アプリケーションの WndProc 関数から WM_GESTURE メッセージを処理することで、アプリケーション開発者が解釈できます。 このメッセージを処理した後、ジェスチャを記述する GESTUREINFO 構造体を取得できます。 GESTUREINFO 構造体には、ジェスチャの種類に応じて、アソートされた情報が含まれます。

GESTUREINFO 構造体は、ジェスチャ情報構造体へのハンドルを GetGestureInfo 関数に渡すことによって取得されます。

次のフラグは、ジェスチャのさまざまな状態を示し、 dwFlags に格納されます。

Name 説明
GF_BEGIN 0x00000001 ジェスチャが開始しています。
GF_INERTIA 0x00000002 ジェスチャによって慣性がトリガーされました。
GF_END 0x00000004 ジェスチャが完了しました。

注意

ほとんどのアプリケーションでは、 GID_BEGIN を無視して GID_END し、 DefWindowProc に渡す必要があります。 これらのメッセージは、既定のジェスチャ ハンドラーによって使用されます。 アプリケーションの動作は、 GID_BEGIN メッセージと GID_END メッセージがサード パーティ製アプリケーションによって使用される場合に定義されません。

次の表は、ジェスチャのさまざまな識別子を示しています。

Name 説明
GID_BEGIN 1 ジェスチャが開始しています。
GID_END 2 ジェスチャが終了しています。
GID_ZOOM 3 ズーム ジェスチャ。
GID_PAN 4 パン ジェスチャ。
GID_ROTATE 5 回転ジェスチャ。
GID_TWOFINGERTAP 6 2 本指のタップ ジェスチャ。
GID_PRESSANDTAP 7 押してタップジェスチャ。

注意

GID_PAN ジェスチャには慣性が組み込まれています。 パン ジェスチャの最後に、オペレーティング システムによって追加のパン ジェスチャ メッセージが作成されます。

GESTUREINFO 構造体のメンバー ptsLocation および ullArguments は、ポイント (POINTS 構造体を使用) とジェスチャに応じてジェスチャに関する追加情報を指定します。 次の表に、ジェスチャの種類ごとに関連付けられている値を示します。

ジェスチャ ID ullArguments ptsLocation
GID_ZOOM 2 つのポイント間の距離を示します。 ズームの中心を示します。
GID_PAN 2 つのポイント間の距離を示します。 パンの現在位置を示します。
GID_ROTATE GF_BEGIN フラグが設定されている場合の回転角度を示します。 それ以外の場合は、回転が開始されてからの角度の変化です。 これは、回転の方向を示すために署名されています。 角度の値を取得して設定するには、 GID_ROTATE_ANGLE_FROM_ARGUMENT マクロと GID_ROTATE_ANGLE_TO_ARGUMENT マクロを使用します。 これは、ターゲット オブジェクトが回転する静止点である回転の中心を示します。
GID_TWOFINGERTAP 2 本の指間の距離を示します。 2 本の指の中心を示します。
GID_PRESSANDTAP 最初の指と 2 番目の指の間の差分を示します。 この値は、ullArguments メンバーの下位 32 ビットの POINT 構造体に格納されます。 最初の指が下がってくる位置を示します。

Windows タッチ ジェスチャ