次の方法で共有


IInkStrokeDisp::GetBoundingBox メソッド (msinkaut.h)

InkDisp オブジェクト内のすべてのストローク、個々のストローク、または InkStrokes コレクションのいずれかのインク空間座標の境界ボックスを取得します。

構文

HRESULT GetBoundingBox(
  [in, optional] InkBoundingBoxMode BoundingBoxMode,
  [out, retval]  IInkRectangle      **Rectangle
);

パラメーター

[in, optional] BoundingBoxMode

任意。 境界ボックスの計算に使用するストローク特性を指定します。 既定値は -1 で、ストロークのすべての特性を使用して境界ボックスを指定することを示します。

ストローク特性を使用して境界ボックスを計算する方法の詳細については、「 BoundingBoxMode 列挙型」を参照してください。

[out, retval] Rectangle

このメソッドが戻るときに、 InkDisp オブジェクト、 IInkStrokeDisp オブジェクト、または InkStrokes コレクションの境界ボックスを定義する四角形へのポインターが含まれます。

メモIInkStrokeDisp オブジェクトの場合、返される境界ボックスはストローク境界ボックスのコピーであるため、返された境界ボックスを変更してもストロークの位置には影響しません。
 

戻り値

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

リターン コード 説明
S_OK
正常終了しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
E_UNEXPECTED
予期しないパラメーターまたはプロパティの型。
REGDB_CLASSNOTREG
InkRectangle オブジェクトは登録されていません。

注釈

境界ボックスがペンの幅の影響を受けると、 InkRenderer のビュー変換に合わせてこの幅が適切にスケーリングされます。 これを行うには、ペンの幅にビュー変換の決定要因の平方根を掛けます。

メモ Windows Vista 以降のバージョンでは、 GetBoundingBox メソッド はストロークの幅を考慮しません。
 
メモ ペンの幅を明示的に設定していない場合、既定では 53 です。 正しい境界ボックスを生成するには、ペンの幅に行列式の平方根を掛ける必要があります。 境界ボックスの高さと幅は、各方向にこの量の半分だけ展開されます。 たとえば、ペンの幅が 53、行列式の平方根が 50、境界ボックスが (0、0、1000、1000) であるとします。 各方向の境界ボックスに対するペンの幅調整は(53 * 50)/2として計算され、左右の辺は1ずつインクリメントされます。 これにより、レンダリングされた境界ボックスが (-1325、-1325、2326、2326) になります。
 

要件

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

こちらもご覧ください

IInkStrokeDisp インターフェイス

InkBoundingBoxMode 列挙

InkRectangle クラス