Share via


IInkRenderer::D rawStroke メソッド (msinkaut.h)

既知のデバイス コンテキストを使用して IInkStrokeDisp オブジェクトを描画し、必要に応じて、既知の InkDrawingAttributes オブジェクトを使用して IInkStrokeDisp オブジェクトを描画します。

構文

HRESULT DrawStroke(
  [in]           LONG_PTR              hDC,
  [in]           IInkStrokeDisp        *Stroke,
  [in, optional] IInkDrawingAttributes *DrawingAttributes
);

パラメーター

[in] hDC

描画するデバイス コンテキストの hWnd

[in] Stroke

描画するストローク。

[in, optional] DrawingAttributes

任意。 図面で使用 する InkDrawingAttributes を指定します。 既定値は NULL です。 InkDrawingAttributes が指定されている場合は、IInkStrokeDispDrawingAttributes をオーバーライドします。

戻り値

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

リターン コード 説明
S_OK
正常終了しました。
E_POINTER
パラメーターに無効なポインターが含まれていました。
E_INK_MISMATCHED_INK_OBJECT
strokes パラメーターは、別の InkDisp オブジェクトに関連付けられています。
E_INVALIDARG
表示ハンドルが無効です。
E_INK_INCOMPATIBLE_OBJECT
stroke または drawingAttributes パラメーターが有効なオブジェクトを指していません。
E_INK_EXCEPTION
メソッド内で例外が発生しました。
E_UNEXPECTED
予期しないパラメーターまたはプロパティの型。

解説

ペンの幅は、ビュー変換の決定要因の平方根で乗算 (またはスケーリング) されます。

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

InkRenderer は、ビューポートとウィンドウの原点を強制的に 0,0 にします。 既存の設定はすべて保存および復元されますが、 InkRenderer では使用されません。 スクロールを実行するには、 InkRenderer オブジェクトのビューおよびオブジェクト変換メソッドを使用します。

要件

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

関連項目

Draw メソッド [InkRenderer クラス]

IInkRenderer

IInkStrokeDisp インターフェイス

InkDrawingAttributes クラス

InkRenderer クラス