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 来询问对象给定的矩形是否与其绘图方面之一相交。

注意IViewObjectEx::QueryHitPoint 不同,此方法不返回HITRESULT_TRANSPARENT或HITRESULT_CLOSE。 它被严格命中或未命中,如果未命中矩形中的点,则返回HITRESULT_OUTSIDE;如果矩形中至少有一个点是命中,则返回HITRESULT_HIT。
 

实施者说明

至少对于DVASPECT_CONTENT方面,需要支持 IViewObjectEx 的对象才能实现此方法。 对象不应在响应此方法时执行任何其他操作,只应返回信息;不应有副作用。 如果某个点是否为命中存在任何歧义(例如,由于坐标未精确转换),则只要矩形中的任何点对对象进行命中,对象应返回HITRESULT_HIT。 也就是说,对于未实际呈现的点,但对于对象呈现的图像中的任何点,都不允许声称命中。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ocidl.h

另请参阅

HITRESULT

IViewObjectEx