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を返します。 その他の可能な戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
このメソッドは、要求された側面には実装されません。 代わりに DVASPECT_CONTENT を使用してください。 |
注釈
コンテナーでは、オブジェクトが別のオブジェクトの特定の描画面と重なっているかどうかをテストする必要がある場合があります。 領域を要求するか、問題の側面の少なくとも外接する四角形を要求することで、オブジェクトが重なっているかを判断できます。 ただし、これを行うより簡単な方法は、 IViewObjectEx::QueryHitRect を呼び出して、指定された四角形が描画面の 1 つと交差するかどうかをオブジェクトに確認することです。
実装者へのメモ
IViewObjectEx をサポートするオブジェクトは、少なくともDVASPECT_CONTENTの側面に対してこのメソッドを実装するために必要です。 オブジェクトは、情報を返す以外に、このメソッドに応答して他のアクションを実行しないでください。副作用はありません。 座標が正確に変換されないなどの理由で、ポイントがヒットかどうかに関するあいまいさがある場合、四角形内の任意のポイントがオブジェクトにヒットした場合は常に、オブジェクトはHITRESULT_HITを返す必要があります。 つまり、実際にレンダリングされていないポイントに対してヒットを要求することは許容されますが、オブジェクトのレンダリングされたイメージ内にあるポイントに対してミスを要求することは修正されません。要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ocidl.h |