Windows タッチ ジェスチャの概要
このセクションでは、Windows Touch でサポートされるさまざまなジェスチャについて説明します。
ジェスチャの概要
Windows Touch を使用すると、1 つの連絡先と複数の連絡先をサポートする複数のジェスチャを使用できます。 次の図は、Windows 7 でサポートされているさまざまなジェスチャを示しています。
注意
一部の認識エンジンは、連絡先が互いに離れている場合に、複数の連絡先でジェスチャを解釈する方が信頼性が高くなります。
レガシ サポート
レガシ サポートの場合、既定のジェスチャ ハンドラーは、以前のバージョンの Windows で使用されていた Windows メッセージにいくつかのジェスチャをマップします。 次の表は、ジェスチャが従来のメッセージにどのようにマップされるかを示しています。
ジェスチャ | 説明 | 生成されたメッセージ |
---|---|---|
パン | パン ジェスチャは、スクロール ホイールを使用するようにマップされます。 |
WM_VSCROLL WM_HSCROLL |
長押し | 長押しジェスチャは、マウスを右クリックするようにマップされます。 |
WM_RBUTTONDOWN WM_RBUTTONUP |
Zoom | ズーム ジェスチャは、Ctrl キーを押しながらマウス ホイールを回転させてスクロールするのと似たメッセージをトリガーします。 | wParamでMK_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 構造体に格納されます。 | 最初の指が下がってくる位置を示します。 |