次の方法で共有


Windows タッチに対する適切なアプローチの選択

このセクションでは、使用できる Windows Touch のさまざまな方法について説明します。

Windows Touch 機能を使用して、さまざまな方法でアプリケーションを強化できます。 方法を採用する前に、アプリケーションで何を行うかを検討する必要があります。 Windows Touch では、次のシナリオが一般的です。

  • アプリケーションを従来のバージョンの Windows と同じように動作させるが、Windows Touch メッセージは一貫して動作するようにしたい。
  • アプリケーションでカスタム オブジェクトの回転、翻訳、パン、ズームのサポートが必要です。
  • アプリケーションで Windows Touch ジェスチャをきめ細かく解釈したり、Windows Touch 入力用に特別に最適化されたアプリケーションで複数のタッチを解釈したりする必要があります。
  • RealTimeStylus オブジェクトを使用し、Windows Touch 機能を使用して拡張するアプリケーションがあります。

アプリケーションを従来のバージョンの Windows と同じように動作させる

Windows 7 では、アプリケーションは既定で Windows Touch 機能を有効にするメッセージを生成します。 たとえば、パン ジェスチャは、WM_*SCROLL メッセージをトリガーします。 パンのサポートに加えて、Windows 7 の既定のWM_GESTURE ハンドラーでは、境界フィードバック、ズーム、および押してタップがサポートされています。 境界フィードバックは、レガシ サポートによっても有効になります。 ジェスチャがメッセージにマップされる方法の詳細については、「 Windows タッチ ジェスチャの概要」を参照してください。 この基本的な機能のみを必要とする開発者は、Windows Touch API を直接操作する必要はありません。

注意

カスタム スクロール バー ハンドラーは 、WM_VSCROLL メッセージのSM_THUMBPOSITION要求をサポートする必要があり、 WM_HSCROLL メッセージの SB_LINELEFT 要求と SB_LINERIGHT 要求 サポートする必要があります。

ユーザー設定のオブジェクトの回転、移動、パン、またはズームのサポートが必要です

タッチのサポートを制限したいが、Windows 7 が提供する既定の動作がアプリケーションに適していない場合は、ジェスチャを使用してアプリケーションを強化できます。 ジェスチャを使用すると、 WM_GESTURE メッセージを処理してジェスチャ コマンドを解釈できます。 ジェスチャの詳細については、「 Windows タッチ ジェスチャ」セクションを参照してください。 アプリケーションで高粒度の回転、ズームのサポートの向上、または 1 本指のパンのみをサポートする必要がある場合は、ジェスチャが Windows Touch 開発に最適な方法です。 ジェスチャ メッセージの解釈に加えて、境界フィードバックのサポートを選択することもできます。 境界フィードバックの詳細については、「Windows Touch プログラミング リファレンス」の「境界フィードバック」セクションを参照してください。 Windows 7 では、コマンド プロンプトとインターネットエクスプローラー境界フィードバックとジェスチャを利用します。

複数のタッチ ポイントのきめ細かいジェスチャ解釈またはカスタム処理が必要な場合

WM_GESTURE メッセージによって提供されるジェスチャよりもさらに具体的なジェスチャを制御する場合、または複数のオブジェクトで複数のジェスチャを解釈する場合は、操作プロセッサを使用する必要があります。 操作プロセッサは、基本的にジェスチャのスーパーセットです。 操作プロセッサを使用するには、生のタッチ データをフィードする操作用のイベント シンクを実装する必要があります。

ジェスチャの解釈に加えて単純なオブジェクト物理演算が必要な場合は、慣性プロセッサを操作プロセッサと組み合わせて使用する必要があります。 慣性プロセッサは、操作の完了時に操作プロセッサから速度値を取得することで、操作プロセッサと連携します。

アプリケーションで複数のタッチ ポイントを解釈する場合は、 WM_TOUCH メッセージのメッセージ ハンドラーを作成する必要があります。

重要

Windows 11 以降

"既定では、3 本および 4 本の指によるタッチ操作は、Windows アプリでは動作しなくなります。"

既定では、3 本および 4 本の指によるタッチ操作は、ウィンドウの切り替えや最小化、仮想デスクトップの変更などの操作のためにシステムによって使用されるようになりました。 これらの操作はシステム レベルで処理されるようになったため、この変更によってアプリの機能が影響を受ける可能性があります。

アプリケーション内で 3 本または 4 本の指による操作をサポートするために、システムでこれらの操作を処理するかどうかを指定する新しいユーザー設定が導入されました。

[Bluetooth とデバイス] > [タッチ] > [3 本および 4 本の指によるタッチ ジェスチャ]

"オン" (既定値) に設定すると、システムによって 3 本および 4 本の指によるすべての操作が処理されます (アプリではそれらをサポートできません)。

"オフ" に設定した場合、アプリで 3 本および 4 本の指による操作をサポートできます (システムによって処理されません)。

アプリケーションでこれらの操作をサポートする必要がある場合は、この設定についてユーザーに通知し、設定アプリを起動するためのリンクを関連ページに配置することをお勧めします (ms-settings:devices-touch)。 詳細については、「 Launcher.LaunchUriAsync メソッド」を参照してください。

RealTimeStylus を使用するアプリケーションに対して Windows Touch 入力を有効にする場合

タブレット PC プラットフォームで複数の連絡先の入力を有効にする場合は、Windows Touch データを解釈するカスタム RealTimeStylus プラグインを実装する必要があります。 Microsoft では、RealTimeStylus プラグインで複数の連絡先からの入力を有効にするために、 ITablet3 インターフェイスと IRealTimeStylus3 インターフェイスを導入しました。 これらのインターフェイスにより、RealTimeStylus プラグインの拡張が簡略化され、複数のコンタクト ポイントがサポートされます。

複数の連絡先のサポートが有効になっているかどうかをチェックするには、IsMultiTouch を呼び出します。 サポートされている連絡先の数をチェックするには、GetMaximumCursors を呼び出します。 複数の連絡先サポートを有効または無効にするには、 MultiTouchEnabled を呼び出します。

注意

RealTimeStylus で複数の連絡先ポイントを有効にしない場合は、パンやズームなどのジェスチャ メッセージを受信します。

プログラミング ガイド