<Return[C]><Top>

CreatePen

Declare Function Api_CreatePen& Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle&, ByVal nWidth&, ByVal crColor&)

Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long

指定されたスタイル、幅、色を持つ論理ペンを作成する。その後、デバイスコンテキストでこのペンを選択し、直線と曲線を描画する際に利用できる。

パラメータ
fnPenStyle
    ペンのスタイルを指定する。次の値のいずれかを指定する。

    値                             

意味                                                                                                                                   

    PS_SOLID

実線のペンを作成する。

    PS_DASH

破線のペンを作成する。このスタイルは、ペンの幅がデバイス単位で 1 以下の場合にのみ有効。

    PS_DOT

点線のペンを作成する。このスタイルは、ペンの幅がデバイス単位で 1 以下の場合にのみ有効。

    PS_DASHDOT

一点鎖線のペンを作成する。このスタイルは、ペンの幅がデバイス単位で 1 以下の場合にのみ有効。

    PS_DASHDOTDOT

二点鎖線のペンを作成する。このスタイルは、ペンの幅がデバイス単位で 1 以下の場合にのみ有効。

    PS_NULL

空のペンを作成する。描画は行われない。

    PS_INSIDEFRAME

実線のペンを作成する。境界長方形を指定する GDI 描画関数(Rectangle 関数や Ellipse 関数など)でこの

 

ペンを使うと、ペンの幅が考慮され、その長方形に完全に収まるように図形が縮小される。

 

ジオメトリックペンでのみ有効。

nWidth
    ペンの幅を論理単位で指定する。0 を指定すると、現在の変形の状態にかかわりなく、ペンの幅は 1 ピクセルになる。
    PS_DASH、PS_DOT、PS_DASHDOT、PS_DASHDOTDOT のいずれかのスタイルを指定し、1 より大きな幅を指定した場合、

    CreatePen 関数は、PS_SOLID スタイルと指定された幅を持つペンを返す。
crColor
    ペンの色に適用される、色の基準を指定する。COLORREF 構造体を生成するには、RGB マクロを使う。


戻り値
    関数が成功すると、論理ペンのハンドルが返る。
    関数が失敗すると、NULL が返る。
    Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。

 

解説
    論理ペンを作成した後、SelectObject 関数を使って、デバイスコンテキストでそのペンを選択できる。その後、そのペンを使って直線と曲線

    を描画できる。
    nWidth パラメータで 0 を指定すると、現在の変形の状態にかかわりなく、作成されたペンは幅 1 ピクセルの線を描画する。
    nWidth パラメータで 1 より大きな値を指定した場合、fnPenStyle パラメータで PS_NULL、PS_SOLID、PS_INSIDEFRAME のいずれ

    かを指定しなければならない。
    nWidth パラメータで 1 より大きな値を指定し、fnPenStyle パラメータで PS_INSIDEFRAME を指定した場合、多角形(ポリゴン)と連続

    直線(ポリライン)を除き、そのペンに関連する線はフレームの内側に描かれる。
    nWidth パラメータで 1 より大きな値を指定し、fnPenStyle パラメータで PS_INSIDEFRAME を指定し、論理パレットのどのエントリとも一

    致しない色を crColor パラメータで指定した場合、システムはディザカラー(混合色)を使って線を描画する。ソリッドペン(実線のペン)で

    は、ディザカラーを利用できない。
    ペンが不要になったら、DeleteObject 関数を使って削除する。