EXTLOGPEN 構造体 (wingdi.h)
EXTLOGPEN 構造体は、拡張ペンのペン スタイル、幅、およびブラシ属性を定義します。 この構造体は、アプリケーションが ExtCreatePen 関数を呼び出したときに作成されたペンの説明を取得するときに、GetObject 関数によって使用されます。
構文
typedef struct tagEXTLOGPEN {
DWORD elpPenStyle;
DWORD elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
ULONG_PTR elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
メンバー
elpPenStyle
ペンの種類、スタイル、エンド キャップ スタイル、結合スタイルの組み合わせ。 各カテゴリの値は、適切なマスクを持つビットごとの AND 演算子を使用して取得できます。
PS_TYPE_MASK でマスクされた elpPenStyle メンバーには、次のいずれかのペンの種類の値があります。
値 | 意味 |
---|---|
PS_GEOMETRIC | ペンは幾何学的です。 |
PS_COSMETIC | ペンは化粧用です。 |
PS_STYLE_MASK でマスクされた elpPenStyle メンバーには、次のいずれかのペン スタイル値があります。
値 | 意味 |
---|---|
PS_DASH | ペンは破線で表示されます。 |
PS_DASHDOT | ペンにはダッシュとドットが交互に表示されます。 |
PS_DASHDOTDOT | ペンには、ダッシュと二重ドットが交互に表示されます。 |
PS_DOT | ペンは点線で表示されます。 |
PS_INSIDEFRAME | ペンは実線です。 外接する四角形を受け取る GDI 描画関数でこのペンを使用すると、ペンの幅を考慮して、外接する四角形に完全に収まるように図形の寸法が縮小されます。 これは、PS_GEOMETRICペンにのみ適用されます。 |
PS_NULL | ペンは非表示です。 |
PS_SOLID | ペンは実線です。 |
PS_USERSTYLE | ペンは、ユーザーが指定したスタイル配列を使用します。 |
次のカテゴリは、PS_GEOMETRICペンにのみ適用されます。 PS_ENDCAP_MASK でマスクされた elpPenStyle メンバーには、次のいずれかのエンド キャップ値があります。
値 | 意味 |
---|---|
PS_ENDCAP_FLAT | ライン エンド キャップはフラットです。 |
PS_ENDCAP_ROUND | 線の端のキャップは丸い。 |
PS_ENDCAP_SQUARE | 線の端のキャップは正方形です。 |
次のカテゴリは、PS_GEOMETRICペンにのみ適用されます。 PS_JOIN_MASK でマスクされた elpPenStyle メンバーには、次のいずれかの結合値があります。
値 | 意味 |
---|---|
PS_JOIN_BEVEL | 線結合は面取りされます。 |
PS_JOIN_MITER | 行結合は、 SetMiterLimit 関数によって設定された現在の制限内にある場合にマイタされます。 結合は、制限を超えると面取りされます。 |
PS_JOIN_ROUND | 行結合は丸めになります。 |
elpWidth
ペンの幅。 elpPenStyle メンバーがPS_GEOMETRIC場合、この値は論理単位での行の幅になります。 それ以外の場合、線は外観が変更され、この値は 1 です。これは、1 ピクセルの幅を持つ線を示します。
elpBrushStyle
ペンのブラシ スタイル。 elpBrushStyle メンバー値には、次のいずれかを指定できます。
値 | 意味 |
---|---|
BS_DIBPATTERN | DIB 仕様で定義されたパターン ブラシを指定します。 elpBrushStyle がBS_DIBPATTERN場合、elpHatch メンバーには、パックされた DIB へのハンドルが含まれます。 詳細については、elpHatch のディスカッションを参照してください。 |
BS_DIBPATTERNPT | DIB 仕様で定義されたパターン ブラシを指定します。 elpBrushStyle がBS_DIBPATTERNPT場合、elpHatch メンバーには、パックされた DIB へのポインターが含まれます。 詳細については、 elpHatch のディスカッションを参照してください。 |
BS_HATCHED | ハッチ付きブラシを指定します。 |
BS_HOLLOW | 中空または NULL ブラシを指定します。 |
BS_PATTERN | メモリ ビットマップによって定義されるパターン ブラシを指定します。 |
BS_SOLID | ソリッド ブラシを指定します。 |
elpColor
elpBrushStyle がBS_SOLIDまたはBS_HATCHED場合、elpColor はペンを描画する色を指定します。 BS_HATCHEDでは、 SetBkMode 関数と SetBkColor 関数によって 背景色が決まります。
elpBrushStyle がBS_HOLLOWまたはBS_PATTERN場合、elpColor は無視されます。
elpBrushStyle がBS_DIBPATTERNまたはBS_DIBPATTERNPT場合、elpColor の下位ワードは、BITMAPINFO 構造体の bmiColors メンバーに、現在実現されている論理パレットに明示的な RGB 値またはインデックスを含めるかどうかを指定します。 elpColor 値は、次のいずれかである必要があります。
値 | 意味 |
---|---|
DIB_PAL_COLORS | カラー テーブルは、現在実現されている論理パレットに 16 ビット インデックスの配列で構成されます。 |
DIB_RGB_COLORS | カラー テーブルには、リテラル RGB 値が含まれています。 |
RGB マクロを使用して COLORREF 構造体を生成します。
elpHatch
elpBrushStyle がBS_PATTERN場合、elpHatch はパターンを定義するビットマップへのハンドルです。
elpBrushStyle がBS_SOLIDまたはBS_HOLLOW場合、elpHatch は無視されます。
elpBrushStyle がBS_DIBPATTERN場合、elpHatch メンバーはパックされた DIB へのハンドルです。 このハンドルを取得するために、アプリケーションは、GMEM_MOVEABLEを使用して GlobalAlloc 関数 (または LMEM_MOVEABLE を持つ LocalAlloc ) を呼び出してメモリ ブロックを割り当て、そのメモリにパックされた DIB を格納します。 パックされた DIB は 、BITMAPINFO 構造体の直後に、ビットマップのピクセルを定義するバイト配列で構成されます。
elpBrushStyle がBS_DIBPATTERNPT場合、elpHatch メンバーはパックされた DIB へのポインターです。 ポインターは、 localAlloc によって作成されたメモリ ブロックから派生LMEM_FIXED、GMEM_FIXEDが設定された GlobalAlloc によって作成されるか、 LocalLock (handle_to_the_dib) などの呼び出しによって返されるポインターです。 パックされた DIB は 、BITMAPINFO 構造体の直後に、ビットマップのピクセルを定義するバイト配列で構成されます。
elpBrushStyle がBS_HATCHED場合、elpHatch メンバーはハッチングの作成に使用される線の向きを指定します。 次のいずれかの値を指定できます。
値 | 意味 |
---|---|
HS_BDIAGONAL | 45 度上向きハッチ (左から右) |
HS_CROSS | 水平および垂直のクロスハッチ |
HS_DIAGCROSS | 45 度のクロスハッチ |
HS_FDIAGONAL | 45度下向きハッチ(左から右) |
HS_HORIZONTAL | 水平ハッチ |
HS_VERTICAL | 垂直ハッチ |
elpNumEntries
elpStyleEntry メンバーのスタイル配列内のエントリの数。 elpPenStyle でPS_USERSTYLEが指定されていない場合、この値は 0 になります。
elpStyleEntry[1]
ユーザー指定のスタイル配列。 配列は有限の長さで指定されますが、無期限に繰り返されるかのように使用されます。 配列の最初のエントリは、最初のダッシュの長さを指定します。 2 番目のエントリは、最初のギャップの長さを指定します。 その後、ダッシュとギャップの長さが交互になります。
elpWidth で幾何学的な線が指定されている場合、長さは論理単位になります。 それ以外の場合、線は化粧品であり、長さはデバイス単位です。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | wingdi.h (Windows.h を含む) |