IViewObjectEx::QueryHitRect メソッド (ocidl.h)

四角形内の任意の点が、オブジェクトの特定の描画面内にあるかどうかを示します。

構文

HRESULT QueryHitRect(
  [in]  DWORD   dwAspect,
  [in]  LPCRECT pRectBounds,
  [in]  LPCRECT pRectLoc,
  [in]  LONG    lCloseHint,
  [out] DWORD   *pHitResult
);

パラメーター

[in] dwAspect

要求された描画の側面。

[in] pRectBounds

格納しているウィンドウのクライアント座標内のオブジェクトの外接する四角形。 この四角形は計算され、コンテナーによって渡されるため、オブジェクトはヒット位置を意味のある形で解釈できます。

[in] pRectLoc

オブジェクトの左上隅を基準とした HIMETRIC 単位で指定されたヒット テストの四角形。

[in] lCloseHint

コンテナーが近いとみなす推奨距離 ( HIMETRIC 単位)。 この値はヒントであり、オブジェクトは独自の方法で解釈できます。 オブジェクトは、このヒントを使用して、ヒット テストの実装の拡張性を選択するために、出力解像度を大まかに推測することもできます。

[out] pHitResult

HITRESULT 列挙値として表されるヒットに関する情報を返すポインター。

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_FAIL
このメソッドは、要求された側面には実装されません。 代わりに DVASPECT_CONTENT を使用してください。

注釈

コンテナーでは、オブジェクトが別のオブジェクトの特定の描画面と重なっているかどうかをテストする必要がある場合があります。 領域を要求するか、問題の側面の少なくとも外接する四角形を要求することで、オブジェクトが重なっているかを判断できます。 ただし、これを行うより簡単な方法は、 IViewObjectEx::QueryHitRect を呼び出して、指定された四角形が描画面の 1 つと交差するかどうかをオブジェクトに確認することです。

メモIViewObjectEx::QueryHitPoint とは異なり、このメソッドはHITRESULT_TRANSPARENTまたはHITRESULT_CLOSEを返しません。 これは厳密にヒットまたはミスであり、四角形内のポイントがヒットしない場合はHITRESULT_OUTSIDEを返し、四角形内の少なくとも 1 つのポイントがヒットした場合はHITRESULT_HIT。
 

実装者へのメモ

IViewObjectEx をサポートするオブジェクトは、少なくともDVASPECT_CONTENTの側面に対してこのメソッドを実装するために必要です。 オブジェクトは、情報を返す以外に、このメソッドに応答して他のアクションを実行しないでください。副作用はありません。 座標が正確に変換されないなどの理由で、ポイントがヒットかどうかに関するあいまいさがある場合、四角形内の任意のポイントがオブジェクトにヒットした場合は常に、オブジェクトはHITRESULT_HITを返す必要があります。 つまり、実際にレンダリングされていないポイントに対してヒットを要求することは許容されますが、オブジェクトのレンダリングされたイメージ内にあるポイントに対してミスを要求することは修正されません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ocidl.h

こちらもご覧ください

HITRESULT

IViewObjectEx