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 座標を含める必要があります。 それ以外の場合、メソッドは空の四角形を返します。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
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 のビュー変換に合わせて適切にスケーリングされます。 これを行うには、ペンの幅にビュー変換の決定要因の平方根を掛けます。 境界ボックスの高さと幅は、各方向にこの量の半分だけ展開され、右側と下部の辺は 1 ずつ増加します。

たとえば、ペンの幅が最初は 53 で、ビュー変換の行列式の平方根が 50 で、境界ボックスが (0, 0, 1000, 1000) であるとします。 各方向の境界ボックスに対するペンの幅調整は(53 * 50)/2として計算され、左右の辺は1ずつインクリメントされます。 これにより、レンダリングされた境界ボックスが (-1325、-1325、2326、2326) になります。

要件

要件
サポートされている最小のクライアント Windows XP タブレット PC エディション [デスクトップ アプリのみ]
サポートされている最小のサーバー サポートなし
対象プラットフォーム Windows
ヘッダー msinkaut.h
Library InkObj.dll

こちらもご覧ください

Draw メソッド [InkRenderer クラス]

DrawStroke メソッド

IInkRenderer

IInkStrokeDisp インターフェイス

InkRenderer クラス

Measure メソッド