CDC::GetPath
更新 : 2007 年 11 月
デバイス コンテキストに選択されているパスの直線の両端の点と曲線の制御点を定義する座標を取得します。
int GetPath(
LPPOINT lpPoints,
LPBYTE lpTypes,
int nCount
) const;
パラメータ
lpPoints
直線の両端の点または曲線の制御点を持つ POINT データ構造体の配列または CPoint オブジェクトの配列へのポインタ。lpTypes
頂点の型を持つバイトの配列へのポインタ。値は次のいずれかの 1 つです。PT_MOVETO lpPoints 内の対応する点から連結していない図形を開始することを指定します。
PT_LINETO 直前の点と lpPoints 内の対応する点が直線の両端になることを指定します。
PT_BEZIERTO lpPoints 内の対応する点がベジエ曲線の制御点または終点になることを指定します。
PT_BEZIERTO 型は、常に 3 点の組み合わせになります。パス内の 3 点の組み合わせの直前の点が、ベジエ曲線の始点を定義します。最初の 2 つの PT_BEZIERTO 点は制御点で、3 番目の PT_BEZIERTO 点は端点になります (ハードコードの場合)。
PT_LINETO 型または PT_BEZIERTO 型は次のフラグと (ビットごとの OR 演算子を使って) 組み合わせることができ、対応する点が図形の最後の点であり図形を閉じること示します。
PT_CLOSEFIGURE 対応する直線または曲線が描画された後、図形が自動的に閉じられることを指定します。直線または曲線の端点から直前に PT_MOVETO で指定された点に向かって直線を描画することによって図形を閉じます。
nCount
lpPoints 配列に置かれる POINT データ構造体の総数を指定します。この値は、lpTypes 配列に置かれるバイト数と同じ値にする必要があります。
戻り値
パラメータ nCount が 0 以外の場合は、列挙された点の数を返します。パラメータ nCount が 0 の場合は、パス内の点の総数を返します。GetPath はバッファには何も書き込みません。パラメータ nCount が 0 以外で、パス内の点の総数より少ない場合は、-1 を返します。
解説
デバイス コンテキストは閉じたパスを持っている必要があります。パスの点は、論理座標で返されます。点はデバイス座標でパス内に格納されます。GetPath 関数は現在の座標変換の反転を使って、デバイス座標から論理座標に変換します。GetPath 関数を呼び出す前に、FlattenPath メンバ関数を呼び出して、パス内のすべての曲線を線分に変換することもできます。
使用例
「CDC::BeginPath」の例を参照してください。
必要条件
ヘッダー : afxwin.h