[一部の情報は、商用リリース前に大幅に変更される可能性があるプレリリース製品に関連しています。 Microsoftは、ここに記載されている情報に関して明示または黙示を問わず、一切の保証を行いません。
指定されたウィンドウのコンテンツが慣性状態にあるかどうかをシステムに報告します。
構文
WINUSERAPI
BOOL
WINAPI
ReportWindowContentInertia(
HWND hWnd,
BOOL bStartInertia);
パラメーター
- hWnd
-
コンテンツ慣性状態が報告されているウィンドウへのハンドル。
- bStartInertia
-
ウィンドウ のコンテンツが慣性に入っていることを報告する場合は TRUE。 慣性 が停止したことを報告する場合は FALSE。
値を返す
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。
注釈
ウィンドウコンテンツは、入力ストリームが終了した後に入力によって操作された後も移動し続ける場合、"慣性" になります。 この慣性を報告して、必要に応じてタッチパッド入力でこのモーションを適切に停止できるようにします。
ウィンドウが慣性の場合、システムはタッチパッド入力への応答方法を変更します。
- 新しいタッチパッド入力が到着すると、システムはウィンドウ にWM_STOPINERTIA を送信します。 アプリケーションは、コンテンツの動きを停止することによってこのメッセージに対応する必要がありますが、同じコンテンツを操作する繰り返しジェスチャ (慣性コンテンツを優先するヒット テスト入力、既存のコンテンツ速度を記憶するなど) の最適化がある場合は、必ずしも "慣性" 状態から遷移する必要はありません。
- タッチパッド入力がコンテンツモーションを停止しようとしているとシステムが判断した場合、システムは ウィンドウにWM_ENDINERTIA を送信します。 アプリケーションは、コンテンツの動きを停止し、"慣性" 状態を終了することによって、このメッセージに対応する必要があります。
シナリオ例:
- ユーザーはクイック タップを実行します。 WM_ENDINERTIA が送信されます。 マウス入力は生成されません。タップによって終了慣性のみが発生しました。
- ユーザーはタッチパッド上で指を押しながら、WM_STOPINERTIA続けてWM_ENDINERTIAを持ち上げます。
- ユーザーは、2 本指ですばやくジェスチャを実行します。慣性メッセージはありません。 繰り返しのジェスチャは、コンテンツを不必要に停止することなく処理することを目的としています。
- ユーザーは、タッチパッドで指 (または 2 つ) を保持し、2 本指のジェスチャ ( WM_STOPINERTIA) を実行します。 ジェスチャーを実行する前に住むことにより、ユーザーがコンテンツを停止しようとしていた可能性があった。
ほとんどの場合、 WM_STOPINERTIA の受信には WM_ENDINERTIA または別のタッチパッド ジェスチャが続きますが、保証されません。 アプリケーションが WM_STOPINERTIAの受信時に特別なコンテンツ状態を実装する場合、その状態はしばらくしてから終了する必要があります。 同様に、タッチパッド入力ストリームが短い場合、 必 ずしもWM_ENDINERTIAの前に WM_STOPINERTIA が付くとは限りません。
慣性の報告は、タッチパッド入力を適切に処理するために重要です。 ウィンドウのコンテンツが慣性状態にあり、システムに報告されていない場合、タッチパッドをタップすると、クリック (マウスの左下げと左) の通常の動作が発生します。 アプリケーションは、このマウス入力を動きのあるコンテンツと対話するものとして扱うことになり、ユーザーが意図していないアクションを実行する可能性があります。
タッチ入力またはペン入力によって発生する慣性の場合、システムは慣性に関して入力を特別に処理する必要はありません。これは、その内容が慣性内にあるウィンドウは、通常、後続の入力を受け取るウィンドウと同じであるためです。 タッチパッド入力の場合、逆に、システムはアプリケーションが入力を受け取る前に決定を行います。 タッチ入力またはペン入力によって発生する慣性を報告することをお勧めします。そのため、ユーザーがタッチパッドで慣性を停止しようとすると、予期される動作が発生します。
システムは、慣性で 1 つのウィンドウのみを追跡します。 別のウィンドウから慣性を報告するためにこの API が呼び出されたときに慣性が既にアクティブになっている場合は、前の慣性情報が置き換えられます。
慣性の開始を報告する場合は、指定されたウィンドウが現在のスレッドによって所有されている必要があり、スレッドは最後の 2 秒間に入力を取得している必要があります。 その後、ウィンドウのコンテンツモーションが停止すると、停止として報告されます(ウィンドウが WM_STOPINERTIA または WM_ENDINERTIAを受け取った場合を除き、慣性停止を報告する必要はありません)。 システムが慣性を追跡しなくなった場合、追跡対象ウィンドウが指定されたウィンドウと一致しない場合、または追跡対象ウィンドウが別のプロセスによって所有されている場合、慣性停止の報告は自動的に無視されます。
必要条件
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 11 [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | サポートなし |
| ヘッダー | Winuser.h (Windows.h を含む) |
| 図書館 | User32.lib |
| DLL | User32.dll (序数 2695) |