Поделиться через


Метод IInkRenderer::MeasureStroke (msinkaut.h)

Вычисляет прямоугольник в контексте устройства, который будет содержать росчерк, если бы он был нарисован с помощью объекта InkRenderer с помощью метода DrawStroke .

Синтаксис

HRESULT MeasureStroke(
  [in]           IInkStrokeDisp        *Stroke,
  [in, optional] IInkDrawingAttributes *DrawingAttributes,
  [out, retval]  IInkRectangle         **Rectangle
);

Параметры

[in] Stroke

Измеримый штрих.

[in, optional] DrawingAttributes

Необязательный элемент. Атрибуты InkDrawingAttributes, используемые при вычислении прямоугольника, который переопределяет атрибуты рисования в росчерке. Значение по умолчанию — NULL, что означает, что штрих измеряется с помощью собственных атрибутов рисования.

[out, retval] Rectangle

При возврате этого метода содержит указатель на прямоугольник в контексте устройства, который будет содержать штрих, если бы росчерк был нарисован с помощью метода DrawStroke объекта InkRenderer . Для вычисления прямоугольника штрих должен содержать координаты x и y. В противном случае метод возвращает пустой прямоугольник.

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
REGDB_E_CLASSNOTREG
Объект InkRectangle не зарегистрирован в системе.
E_INK_INCOMPATIBLE_OBJECT

IInkStrokeDisp не указывает на совместимый объект InkDisp , или drawingAttributes является недопустимым входным параметром.

E_INK_EXCEPTION
В методе произошло исключение.
E_POINTER
Параметр содержал недопустимый указатель.
E_INVALIDARG
Недопустимый дескриптор отображения.
E_UNEXPECTED
Непредвиденный тип параметра или свойства.

Комментарии

Это верно, только если вы передаете одни и те же аргументы в MeasureStroke и DrawStroke.

Так как ширина пера влияет на ограничивающий прямоугольник, эта ширина масштабируется соответствующим образом для преобразования представления InkRenderer. Для этого ширина пера умножается на квадратный корень определяющего элемента преобразования представления. Высота и ширина ограничивающего прямоугольника расширяются на половину этого значения в каждом направлении, а правая и нижняя стороны увеличиваются на единицу.

Например, предположим, что ширина пера изначально равна 53, квадратный корень определяющего элемента преобразования представления — 50, а ограничивающий прямоугольник — (0, 0, 1000, 1000). Регулировка ширины пера для ограничивающего прямоугольника в каждом направлении вычисляется как (53 * 50) / 2, а правая и нижняя стороны увеличиваются на единицу. В результате отображается ограничивающий прямоугольник (-1325, -1325, 2326, 2326).

Требования

Требование Значение
Минимальная версия клиента Windows XP Tablet PC Edition [только классические приложения]
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header msinkaut.h
Библиотека InkObj.dll

См. также раздел

Метод Draw [класс InkRenderer]

Метод DrawStroke

IInkRenderer

Интерфейс IInkStrokeDisp

Класс InkRenderer

Метод Measure