iInkRenderer::Measure 方法 (msinkaut.h)

如果笔划是使用 DrawStroke 方法通过 InkRenderer 对象绘制的,则计算设备上下文中将包含笔划集合的矩形。

语法

HRESULT Measure(
  [in]          IInkStrokes   *Strokes,
  [out, retval] IInkRectangle **Rectangle
);

参数

[in] Strokes

要测量的笔划集合。

[out, retval] Rectangle

此方法返回时,包含指向设备上下文中矩形的指针,如果笔划是使用 InkRenderer 对象的 DrawStroke 方法绘制的,则包含这些笔划。 笔划必须包含 x 坐标和 y 坐标才能计算矩形。 否则,该方法将返回一个空矩形。

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK
成功。
E_POINTER
参数包含无效指针。
E_INVALIDARG
无效的显示句柄。
E_INK_INCOMPATIBLE_OBJECT
笔划参数不指向有效的 对象。
E_INK_MISMATCHED_INK_OBJECT
笔划参数与不同的 InkDisp 对象相关联。
E_INK_EXCEPTION
方法内发生异常。
E_UNEXPECTED
意外的参数或属性类型。

注解

仅当将相同的参数传递给 MeasureDrawStroke 时,这才准确。

由于边界框受笔宽度的影响,因此会根据 InkRenderer 的视图转换适当缩放此宽度。 为此,将笔宽度乘以视图转换决定因素的平方根。 边界框的高度和宽度在每个方向上扩展一半,右侧和底部两侧将增加一个。

例如,假设笔宽度最初为 53,视图转换的决定因素的平方根为 50,边界框 (0、0、1000、1000) 。 每个方向上边界框的笔宽度调整计算为 (53 * 50) / 2,右侧和底部两侧按 1 递增。 这将导致呈现的边界框 (-1325、-1325、2326、2326) 。

要求

要求
最低受支持的客户端 Windows XP Tablet PC Edition [仅限桌面应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 msinkaut.h
Library InkObj.dll

另请参阅

Draw 方法 [InkRenderer 类]

IInkRenderer

IInkStrokeDisp 接口

InkRenderer 类

MeasureStroke 方法