CDC::PolyDraw
更新 : 2007 年 11 月
一連の線分とベジエ スプラインを描画します。
BOOL PolyDraw(
const POINT* lpPoints,
const BYTE* lpTypes,
int nCount
);
パラメータ
lpPoints
各線分の端点と各ベジエ スプラインの終点と制御点を持つ POINT データ構造体の配列へのポインタ。lpTypes
lpPoints 配列内の各点の使用方法を指定する配列へのポインタ。次の値のいずれかを指定できます。PT_MOVETO この点から連結されない図形が開始されることを指定します。この点が新しい現在位置になります。
PT_LINETO 現在位置からこの点まで直線が描画されることを指定します。この点が新しい現在位置になります。
PT_BEZIERTO この点がベジエ スプラインの制御点または終点であることを指定します。
PT_BEZIERTO 型は、常に 3 点の組み合わせになります。現在位置はベジエ スプラインの始点を規定します。最初の 2 つの PT_BEZIERTO 点は制御点で、3 番目の PT_BEZIERTO 点は終点になります。終点が新しい現在位置になります。連続した 3 つの PT_BEZIERTO 点がなかったときはエラーになります。
PT_LINETO 型または PT_BEZIERTO 型は次の定数とビットごとの OR 演算子を使って組み合わせることができ、対応する点が図形の最後の点で、その点で図形を閉じること示します。
PT_CLOSEFIGURE PT_LINETO 型または PT_BEZIERTO 型のこの点が描画された後、図形は自動的に閉じられます。この点から、直前の PT_MOVETO または MoveTo 点まで直線を描画します。
このフラグは、ビットごとの OR 演算子を使って、直線では PT_LINETO 型と、ベジエ スプラインでは PT_BEZIERTO 型の終点と組み合わせることができます。現在位置は図形を閉じた直線の終点に設定されます。
nCount
lpPoints 配列内の点の総数を指定します。lpTypes 配列のバイト数と同じになります。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
CDC::MoveTo、CDC::LineTo、CDC::PolyBezierTo メンバ関数を連続して呼び出す代わりに、連結されていない図形を描画するためにこの関数を使います。直線とスプラインは現在のペンを使って描画され、図形は塗りつぶされません。CDC::BeginPath メンバ関数を呼び出して開始されたアクティブなパスがあるときは、PolyDraw はパスに追加します。点は lpPoints 配列に保持され、lpTypes 内のデータは各点が CDC::MoveTo、CDC::LineTo、CDC::BezierTo 操作のどの一部になっているかを示します。また、図形を閉じることもできます。この関数は現在位置を更新します。
使用例
「CDC::BeginPath」の例を参照してください。
必要条件
ヘッダー : afxwin.h