IInkDisp::GetBoundingBox メソッド (msinkaut.h)
InkDisp オブジェクト内のすべてのストローク、個々のストローク、または InkStrokes コレクションのインク空間座標の境界ボックスを取得します。
構文
HRESULT GetBoundingBox(
[in, optional] InkBoundingBoxMode BoundingBoxMode,
[out, retval] IInkRectangle **Rectangle
);
パラメーター
[in, optional] BoundingBoxMode
任意。 境界ボックスの計算に使用するストローク特性を指定します。 ストローク特性を使用して境界ボックスを計算する方法の詳細については、「 BoundingBoxMode 列挙型」を参照してください。
既定値は -1 (IBBM_DEFAULT) です。これは、ストロークのすべての特性を使用して境界ボックスを指定することを意味します。
[out, retval] Rectangle
このメソッドが戻るとき、 には、 InkDisp オブジェクト、 IInkStrokeDisp オブジェクト、または InkStrokes コレクションの境界ボックスを定義する四角形が含まれます。
メモIInkStrokeDisp オブジェクトの場合、返される境界ボックスはストローク境界ボックスのコピーであるため、返される境界ボックスを変更してもストロークの位置には影響しません。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
パラメーターに無効なポインターが含まれていました。 |
|
メソッド内で例外が発生しました。 |
|
予期しないパラメーターまたはプロパティの種類。 |
|
InkRectangle オブジェクトは登録されていません。 |
解説
境界ボックスがペンの幅の影響を受けると、 InkRenderer のビュー変換に合わせてこの幅が適切にスケーリングされます。 これを行うには、ペンの幅にビュー変換の決定要因の平方根を乗算します。
メモ Windows Vista 以降のバージョンでは、 GetBoundingBox メソッド はストロークの幅を考慮しません。
メモ ペンの幅を明示的に設定していない場合、既定では 53 になります。 正しい境界ボックスを生成するには、ペンの幅に決定要因の平方根を掛ける必要があります。 境界ボックスの高さと幅は、各方向にこの量の半分だけ拡張されます。 たとえば、ペンの幅が 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 |