GetPath 関数 (wingdi.h)

GetPath 関数は、指定されたデバイス コンテキストで選択されたパス内の線の端点と曲線の制御点を定義する座標を取得します。

構文

int GetPath(
  [in]  HDC     hdc,
  [out] LPPOINT apt,
  [out] LPBYTE  aj,
  [in]  int     cpt
);

パラメーター

[in] hdc

閉じたパスを含むデバイス コンテキストへのハンドル。

[out] apt

線の端点と曲線コントロール ポイントを論理座標で受け取る POINT 構造体の配列へのポインター。

[out] aj

頂点型を受け取るバイト配列へのポインター。 このパラメーターには、次の値のいずれかを指定できます。

Type 説明
PT_MOVETO
lpPoints パラメーター内の対応するポイントが非結合図形を開始することを指定します。
PT_LINETO
lpPoints 内の前のポイントと対応するポイントが線の終点であることを指定します。
PT_BEZIERTO
lpPoints 内の対応する点がベジェ曲線のコントロール ポイントまたは終了点であることを指定します。

PT_BEZIERTO値は、常に 3 つのセットで発生します。 パスの直前の点は、ベジエ曲線の始点を定義します。 最初の 2 つのPT_BEZIERTO ポイントはコントロール ポイント、3 番目のPT_BEZIERTO ポイントは終了ポイント (ハードコーディングされている場合) です。

 

PT_LINETO値またはPT_BEZIERTO値を次の値と組み合わせて (ビットごとの演算子 OR を使用して)、対応するポイントが図の最後のポイントであり、図形を閉じる必要があることを示すことができます。

フラグ 説明
PT_CLOSEFIGURE
対応する線または曲線を描画した後に、図形が自動的に閉じられることを指定します。 図形は、直線または曲線の終点から最後のPT_MOVETOに対応する点まで線を描画することによって閉じられます。

[in] cpt

lpPoints が指す配列に格納できる POINT 構造体の合計数。 この値は、 lpTypes が指す配列に配置できるバイト数と同じである必要があります。

戻り値

nSize パラメーターが 0 以外の場合、戻り値は列挙されたポイントの数です。 nSize が 0 の場合、戻り値はパス内のポイントの合計数です (また、GetPath はバッファーに何も書き込みしません)。 nSize が 0 以外で、パス内のポイント数より小さい場合、戻り値は 1 です。

解説

hdc パラメーターで識別されるデバイス コンテキストには、閉じたパスが含まれている必要があります。

パスのポイントは論理座標で返されます。 ポイントはデバイス座標内のパスに格納されるため、 GetPath は、現在の変換の逆関数を使用して、デバイス座標から論理座標にポイントを変更します。

パス内のすべての曲線を線分に変換するために、GetPath の前に FlattenPath 関数を呼び出す場合があります。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h (Windows.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

関連項目

FlattenPath

ポイント

Path 関数

パスの概要

PolyDraw

WidenPath