ExtCreatePen

ExtCreatePen 関数は、指定したスタイル、幅、ブラシ属性を持つ論理コスメティックまたはジオメトリックペンを作成する。

ExtCreatePen iPenStyle, cWidth, plbrush, cStyle, pstyle

iPenStyle : [int] タイプ、スタイル、端点、結合属性の組み合わせ。各カテゴリの値はビット OR 演算子 ( | ) で結合する。
cWidth : [int] ペンの幅。dwPenStyle が PS_GEOMETRIC の場合、幅は論理単位で指定する。PS_COSMETIC の場合、幅は 1 でなければならない。
plbrush : [var] LOGBRUSH 構造体へのポインタ。dwPenStyle が PS_COSMETIC の場合、lbColor メンバにはペンの色を指定し、lpStyle メンバには BS_SOLID を設定する必要がある。dwPenStyle が PS_GEOMETRIC の場合、ペンのブラシ属性を指定するためにすべてのメンバを使用しなければならない。
cStyle : [int] lpStyle 配列の長さ(DWORD 単位)。dwPenStyle が PS_USERSTYLE でない場合は 0 でなければならない。スタイル数は最大 16 個に制限される。
pstyle : [var] 配列へのポインタ。最初の値はユーザ定義スタイルにおける最初のダッシュの長さ、2 番目の値は最初のスペースの長さ、以下同様。dwPenStyle が PS_USERSTYLE でない場合、このポインタは NULL でなければならない。線描画中に lpStyle 配列を越えた場合、ポインタは配列の先頭にリセットされる。このとき dwStyleCount が偶数ならダッシュとスペースのパターンが繰り返される。一方、dwStyleCount が奇数の場合は、ポインタがリセットされるとパターンが反転する。つまり lpStyle の最初の要素はスペースを、2 番目はダッシュを表すようになり、以下同様となる。

(プラグイン / モジュール : gdi32.dll)

解説

ExtCreatePen 関数は、指定したスタイル、幅、ブラシ属性を持つ論理コスメティックまたはジオメトリックペンを作成する。

[戻り値]
関数が成功した場合、戻り値は論理ペンを識別するハンドルである。失敗した場合の戻り値は 0 である。

[備考]
ジオメトリックペンは任意の幅を持てるほか、ディザやパターンなどブラシの任意の属性を持つことができる。コスメティックペンは 1
ピクセル幅で単色のみだが、一般にジオメトリックペンより高速である。ジオメトリックペンの幅は常にワールド単位で指定する。コスメティックペンの幅は常に
1 である。端点と結合はジオメトリックペンに対してのみ指定する。論理ペンを作成した後、アプリケーションは SelectObject
関数を呼び出してデバイスコンテキストにそのペンを選択できる。ペンがデバイスコンテキストに選択された後、線や曲線の描画に使用できる。dwPenStyle
が PS_COSMETIC かつ PS_USERSTYLE の場合、lpStyle
配列の各要素はスタイル単位によるダッシュとスペースの長さを指定する。スタイル単位は、ペンで線を引くデバイスによって定義される。dwPenStyle
が PS_GEOMETRIC かつ PS_USERSTYLE の場合、lpStyle
配列の各要素は論理単位によるダッシュとスペースの長さを指定する。dwPenStyle が PS_ALTERNATE
の場合、スタイル単位は無視され、1 ピクセルおきに描画される。lplb が指す LOGBRUSH 構造体の lbStyle メンバが
BS_PATTERN の場合、lbHatch メンバが指すビットマップは DIB セクションであってはならない。DIB セクションは
CreateDIBSection で作成されるビットマップである。そのビットマップが DIB セクションの場合、ExtCreatePen
関数は失敗する。指定したペンが不要になったら、アプリケーションは DeleteObject 関数を呼び出してペンを削除すること。ICM:
ペンの作成時にはカラーマネジメントは行われない。ただし、ICM
対応のデバイスコンテキストにペンが選択されたときにはカラーマネジメントが行われる。

情報

プラグイン / モジュールgdi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs