次の方法で共有


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

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

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 タッチ サンプル