EXTLOGPEN 結構 (wingdi.h)
EXTLOGPEN 結構會定義擴充畫筆的畫筆樣式、寬度和筆刷屬性。 當 GetObject 函式擷取呼叫 ExtCreatePen 函式時所建立之手寫筆的描述時,會使用此結構。
語法
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,表示寬度為一像素的線條。
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 值。 |
elpHatch
如果 elpBrushStyleBS_PATTERN,elpHatch 是定義模式的點陣圖句柄。
如果 elpBrushStyle 是BS_SOLID或BS_HOLLOW, 則會忽略 elpHatch 。
如果 elpBrushStyle 是 BS_DIBPATTERN,elpHatch 成員是已封裝 DIB 的句柄。 若要取得此句柄,應用程式會呼叫 具有 GMEM_MOVEABLE (或 LocalAlloc 的 GlobalAlloc 函式,並搭配 LMEM_MOVEABLE) 來配置記憶體區塊,然後使用封裝的 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,這個值會是零。
elpStyleEntry[1]
使用者提供的樣式陣列。 陣列是以有限的長度指定,但會使用,就像是無限期重複一樣。 陣列中的第一個專案會指定第一個虛線的長度。 第二個專案會指定第一個間距的長度。 之後,虛線和間距的長度會替代。
如果 elpWidth 指定幾何線,長度會以邏輯單位表示。 否則,線條是外觀,長度是裝置單位。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | wingdi.h (包含 Windows.h) |