ヒット テストと画面の場所のナビゲーション

オブジェクトの子を見つけるか、オブジェクトのサイズを決定するために、クライアントは画面上のテスト ポイントをヒットできます。 次の 2 つのメソッドを使用できます。

IAccessible::accHitTest の使用

ポイントがオブジェクト内にあるか、子内にあるのか、どちらでもないかを識別するために、クライアントは親オブジェクトの IAccessible::accHitTest メソッドを呼び出し、ヒット テストするポイントの画面座標を渡します。 次の一覧では、いくつかの一般的なシナリオについて説明します。

  • オブジェクトの子が指定したポイントで重なっている場合、 IAccessible::accHitTest は、スペースを占めるように視覚的に見える最上位の子を取得します。
  • ウィンドウが子をカバーしている場合、または子が親によってクリップされている場合は、その子が表示されていない場合でも、対象のポイントをヒット テストすると子が取得されます。
  • 指定したポイントで見つかった子が子要素ではなく、アクセス可能なオブジェクトである場合、メソッドは子の IDispatch インターフェイスを返します。

IAccessible::accLocation の使用

オブジェクトまたはオブジェクトの子の 1 つの画面の場所を取得するために、クライアントは IAccessible::accLocation を呼び出します。 このメソッドは、指定したオブジェクトの外接する四角形の座標を返します。 オブジェクトが四角形のように形成されていない場合、メソッドはオブジェクト全体を含む最小の四角形の座標を返します。

四角形以外のオブジェクトの領域と外接する四角形の関係を次の図に示します。

非四角形オブジェクトの領域 (円) とその外接する四角形を示す図。

Note

IAccessible::accHitTest は、クライアントが外接する四角形ではなく、ピクセル単位でオブジェクトの位置を決定できるため、 IAccessible::accLocation よりも正確です。 この精度は、たとえば、アプリケーションがマウス ポインターの位置を追跡して情報を収集する場合に便利です。