iInkRenderer::MeasureStroke 方法 (msinkaut.h)
计算使用 DrawStroke 方法使用 InkRenderer 对象绘制的设备上下文中将包含笔划的矩形。
语法
HRESULT MeasureStroke(
[in] IInkStrokeDisp *Stroke,
[in, optional] IInkDrawingAttributes *DrawingAttributes,
[out, retval] IInkRectangle **Rectangle
);
参数
[in] Stroke
要测量的笔划。
[in, optional] DrawingAttributes
可选。 计算矩形时要使用的 InkDrawingAttributes 会替代笔划上的绘图属性。 默认值为 NULL,表示使用其自己的绘图属性测量笔划。
[out, retval] Rectangle
此方法返回时,包含指向设备上下文中矩形的指针,如果笔划是使用 InkRenderer 对象的 DrawStroke 方法绘制的,则包含该笔划。 笔划必须包含 x 坐标和 y 坐标才能计算矩形。 否则,该方法将返回一个空矩形。
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
InkRectangle 对象未在系统上注册。 |
|
IInkStrokeDisp 不指向兼容的 InkDisp 对象,或者 drawingAttributes 是无效的输入参数。 |
|
方法内发生异常。 |
|
参数包含无效指针。 |
|
无效的显示句柄。 |
|
意外的参数或属性类型。 |
注解
仅当将相同的参数传递给 MeasureStroke 和 DrawStroke 时,这才准确。
由于边界框受笔宽度的影响,因此会根据 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 |