CPen::CPen

建構 CPen 物件。

CPen( );
CPen(
   int nPenStyle,
   int nWidth,
   COLORREF crColor 
);
CPen(
   int nPenStyle,
   int nWidth,
   const LOGBRUSH* pLogBrush,
   int nStyleCount = 0,
   const DWORD* lpStyle = NULL 
);

參數

  • nPenStyle
    指定畫筆樣式。在建構函式的第一個版本的這個參數可以是下列其中一個值:

    • PS_SOLID 建立一個實心畫筆。

    • PS_DASH 建立虛線畫筆。有效,只有當畫筆寬度小於或等於 1,在單位。

    • PS_DOT 建立直線。為多點的畫筆。有效,只有當畫筆寬度小於或等於 1,在單位。

    • PS_DASHDOT 建立具有替代虛線和點的畫筆。有效,只有當畫筆寬度小於或等於 1,在單位。

    • PS_DASHDOTDOT 建立具有替代虛線和雙重句號的畫筆。有效,只有當畫筆寬度小於或等於 1,在單位。

    • PS_NULL 建立一個空的畫筆。

    • PS_INSIDEFRAME 建立 (例如繪製在 Windows GDI 輸出函式所產生的封閉式形狀內部框架的一行指定週框的提示, 橢圓形方框(、、、和 RoundRectPieChord 成員函式)。當模式搭配 Windows GDI 不指定週框的輸出功能 (例如, LineTo 成員函式),畫筆的繪圖區域不是由架構限制。

    CPen 建構函式的第二個版本指定型別,樣式,節流端蓋端點的組合,然後加入屬性。應該使用位元的 OR 運算組合使用或運算子,從每個分類的值 (|)。畫筆類型可以是下列其中一個值:

    • PS_GEOMETRIC 建立一個幾何畫筆。

    • PS_COSMETIC 建立一個。妝畫筆。

      CPen 建構函式的第二個版本加入 nPenStyle畫筆的下列模式:

    • PS_ALTERNATE 建立設定其他像素的畫筆。(這個模式與自動化妝筆只適用於)。

    • PS_USERSTYLE 建立利用使用者提供的一個樣式的陣列的畫筆。

      位元組資料流端蓋端點可以是下列其中一個值:

    • PS_ENDCAP_ROUND 節流端蓋端點是循環。

    • PS_ENDCAP_SQUARE 節流端蓋端點是方格。

    • PS_ENDCAP_FLAT 節流端蓋端點是平面的。

      聯結可以是下列其中一個值:

    • PS_JOIN_BEVEL Joins 兩個。

    • 與其在 SetMiterLimit 函式時,設定目前的限制範圍內PS_JOIN_MITER Joins 為斜接。如果聯結超過此限制,則兩個。

    • PS_JOIN_ROUND Joins 是循環。

  • nWidth
    指定畫筆的寬度。

    • 如需建構函式的第一個版本,則為,如果這個值是 0,而不管對應模式,在單位的寬度永遠為 1 像素,。

    • 如需建構函式的第二個版本,則為,如果 nPenStyle 是 PS_GEOMETRIC,寬度以邏輯單位測量。如果 nPenStyle 是 PS_COSMETIC,必須將這個寬度為 1。

  • crColor
    包含畫筆的 RGB 色彩。

  • pLogBrush
    LOGBRUSH 結構的點。如果 nPenStyle 是 PS_COSMETICLOGBRUSH 結構的 lbColor 成員指定畫筆的色彩,並 LOGBRUSH 結構的 lbStyle 成員必須設定為 BS_SOLID。如果 nPenStyle 是 PS_GEOMETRIC,所有成員都必須使用指定畫筆的筆刷屬性。

  • nStyleCount
    在 Doubleword 的單位指定長度,, lpStyle 陣列。如果不是, nPenStylePS_USERSTYLE,這個值必須為零。

  • lpStyle
    指向 兩位數值。第一個值以使用者定義的樣式會指定第一條虛線的長度,第二個值會指定第一個空白的長度,以此類推。如果不是, nPenStylePS_USERSTYLE,這個指標必須是 NULL

備註

如果您使用建構函式沒有引數,您必須使用 CreatePenCreatePenIndirect產生的 CPen 物件,或 CreateStockObject 成員函式。

如果您使用接受引數的建構函式,然後再進一步初始化不是必要的。使用引數的建構函式可以擲回例外狀況,如果發生錯誤,,而沒有引數的建構函式一定會成功。

範例

// Create a solid red pen of width 2.
CPen myPen1(PS_SOLID, 2, RGB(255,0,0));

// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
CPen myPen2(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);

需求

Header: afxwin.h

請參閱

參考

CPen 類別

階層架構圖

CPen::CreatePen

CPen::CreatePenIndirect

CGdiObject::CreateStockObject