次の方法で共有


Windows Touch ジェスチャ のサンプル (MTGestures)

このセクションでは、Windows Touch ジェスチャのサンプルについて説明します。

Windows タッチ ジェスチャ サンプルでは、ジェスチャ メッセージを使用して、 WM_GESTURE メッセージを処理してグラフィックス デバイス インターフェイス (GDI) によってレンダリングされたボックスを翻訳、回転、およびスケーリングする方法を示します。 次のスクリーン ショットは、実行中のサンプルの外観を示しています。

実行中の Windows タッチ ジェスチャ サンプルを示すスクリーン ショット。画面上に黒で囲まれた白い四角形が回転しています

このサンプルでは、ジェスチャ メッセージがジェスチャ エンジンに渡され、描画オブジェクトのメソッドを呼び出して、これらのコマンドを処理するメソッドを持つオブジェクトを変換、回転、およびスケーリングします。 サンプルがどのように動作するかを示すために、2 本指でタップコマンドを使用して、レンダリングされたボックス内の対角線を有効または無効にする手順を検討してください。 ユーザーが 2 本指でタップ ジェスチャを実行すると、プログラムによって処理されるメッセージが生成されます。 メッセージが処理されると、描画オブジェクトに対角線をレンダリングするためのブール値を切り替え、オブジェクトは対角線をレンダリングします。

次のコードは、ジェスチャ メッセージが WndProc メソッドからジェスチャ エンジンに渡される方法を示しています。

    case WM_GESTURE:
        // The gesture-processing code is implemented in the CGestureEngine
        // class.
        return g_cGestureEngine.WndProc(hWnd,wParam,lParam);
        break;

次のコードは、ジェスチャ エンジンが 2 本指タップ コマンドを処理する方法を示しています。

// Two-finger tap command
void CMyGestureEngine::ProcessTwoFingerTap(void)
{
    if(_pcRect)
    {
        _pcRect->ToggleDrawDiagonals();
    }
}

次のコードは、描画オブジェクトが対角線を切り替える方法を示しています。

void ToggleDrawDiagonals(void){_bDrawDiagonals = !_bDrawDiagonals;}

次のコードは、オブジェクトが描画メソッドで対角線をレンダリングする方法を示しています。

    if(_bDrawDiagonals)
    {
        // draw diagonals
        MoveToEx(hdc,ptRect[0].x,ptRect[0].y,NULL);
        LineTo(hdc,ptRect[2].x,ptRect[2].y);
        MoveToEx(hdc,ptRect[1].x,ptRect[1].y,NULL);
        LineTo(hdc,ptRect[3].x,ptRect[3].y);
    }

マルチタッチ ジェスチャ アプリケーション (C#)マルチタッチ ジェスチャ アプリケーション (C++)Windows タッチ サンプル