CPen::CreatePen
建立一個邏輯化妝產品或幾何畫筆與指定的樣式、寬度和筆刷屬性,並將其附加至 CPen 物件。
BOOL CreatePen(
int nPenStyle,
int nWidth,
COLORREF crColor
);
BOOL CreatePen(
int nPenStyle,
int nWidth,
const LOGBRUSH* pLogBrush,
int nStyleCount = 0,
const DWORD* lpStyle = NULL
);
參數
nPenStyle
為畫筆指定樣式。 如需可能值的清單,請參閱 CPen 建構函式的 nPenStyle 參數。nWidth
指定畫筆的寬度。對於 CreatePen第一個版本,則為,如果這個值是零,不管對應模式,以裝置單位表示的寬度永遠是以像素為單位)。
對於 CreatePen第二個版本,則為,否則為 nPenStylePS_GEOMETRIC,此寬度 (以邏輯單位為單位。 如果 nPenStyle 是 PS_COSMETIC,必須設定這個寬度設定為{1}。
crColor
包含畫筆的 RGB 色彩。pLogBrush
對 LOGBRUSH 結構的點。 如果 nPenStyle 是 PS_COSMETIC, LOGBRUSH 結構的 lbColor 成員指定畫筆的色彩,並 LOGBRUSH 結構的 lbStyle 成員必須設定為 BS_SOLID。 如果 nPenStyle 是 PS_GEOMETRIC,所有成員必須使用指定這個畫筆的筆刷屬性。nStyleCount
在兩字單位指定長度,則為, lpStyle 陣列。 如果不是, nPenStylePS_USERSTYLE,這個值必須為零。lpStyle
對的兩點數值。 第一個值在一個使用者定義樣式指定第一條虛線的長度,第二個值指定第一個空格的長度,依此類推。 如果不是, nPenStylePS_USERSTYLE,這個指標必須是 空值 。
傳回值
如果成功,則為非零值為,則方法會失敗。
備註
CreatePen 第一版中使用指定的樣式、寬度和色彩的畫筆。 畫筆之後可以選取做為收到目前筆為所有裝置內容。
具有大於一個寬度的畫筆的像素一定要有 PS_NULL、 PS_SOLID或 PS_INSIDEFRAME 樣式。
如果畫筆有 PS_INSIDEFRAME 樣式和邏輯色彩表中沒有符合色彩的某個色彩時,畫筆繪製一經遞色的色彩。 PS_SOLID 筆模式無法用來建立一經遞色的色彩的畫筆。 如果畫筆寬度小於或等於為 .,模式 PS_INSIDEFRAME 與 PS_SOLID 是相同的。
CreatePen 第二版初始化具有指定的樣式、寬度和筆刷屬性的一個邏輯化妝產品或幾何畫筆。 一支化妝畫筆的寬度永遠為;幾何一支畫筆的寬度 (以全局單位表示一律指定。 在應用程式建立邏輯畫筆後,就可以選取畫筆選取到裝置內容中呼叫 CDC::SelectObject 函式。 在畫筆選取到裝置內容後,就可以用它來繪製直線和曲線。
如果 nPenStyle 是 PS_COSMETIC 和 PS_USERSTYLE,在 lpStyle 陣列的輸入樣式單位指定虛線的長度和空格。 樣式單位由畫筆來繪製線條的裝置所定義。
如果 nPenStyle 是 PS_GEOMETRIC 和 PS_USERSTYLE,在 lpStyle 陣列的輸入以邏輯單位指定虛線的長度和空格。
如果 nPenStyle 是 PS_ALTERNATE,樣式單位被忽略,而其他像素設定。
當應用程式不再需要特定一支畫筆時,應該呼叫 CGdiObject::DeleteObject 成員函式或終結物件,因此 CPen 資源不再使用。 當畫筆在裝置內容時,選取應用程式不應該刪除畫筆。
範例
CPen myPen1, myPen2;
// Create a solid red pen of width 2.
myPen1.CreatePen(PS_SOLID, 2, RGB(255,0,0));
// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
myPen2.CreatePen(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);
需求
Header: afxwin.h