ExtCreatePen 함수(wingdi.h)
ExtCreatePen 함수는 지정된 스타일, 너비 및 브러시 특성을 가진 논리적 화장품 또는 기하학적 펜을 만듭니다.
구문
HPEN ExtCreatePen(
[in] DWORD iPenStyle,
[in] DWORD cWidth,
[in] const LOGBRUSH *plbrush,
[in] DWORD cStyle,
[in] const DWORD *pstyle
);
매개 변수
[in] iPenStyle
형식, 스타일, 끝 캡 및 조인 특성의 조합입니다. 각 범주의 값은 비트 OR 연산자( | )를 사용하여 결합됩니다.
펜 형식은 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
펜은 기하학적입니다. |
|
펜은 화장품입니다. |
펜 스타일은 다음 값 중 하나일 수 있습니다.
끝 캡은 기하학적 펜에 대해서만 지정됩니다. 끝 상한은 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
끝 대문자는 둥근 모양입니다. |
|
끝 대문자는 정사각형입니다. |
|
끝 대문자는 평평합니다. |
조인은 기하학적 펜에 대해서만 지정됩니다. 조인은 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
조인은 세로로 표시됩니다. |
|
조인은 SetMiterLimit 함수에 의해 설정된 현재 제한 내에 있을 때 완화됩니다. 이 제한을 초과하면 조인은 비정상 상태가 됩니다. |
|
조인은 둥글습니다. |
[in] cWidth
펜의 너비입니다. dwPenStyle 매개 변수가 PS_GEOMETRIC 경우 너비가 논리 단위로 제공됩니다. dwPenStyle이 PS_COSMETIC 경우 너비를 1로 설정해야 합니다.
[in] plbrush
LOGBRUSH 구조체에 대한 포인터입니다. dwPenStyle이 PS_COSMETIC 경우 lbColor 멤버는 펜의 색을 지정하고 lpStyle 멤버를 BS_SOLID 설정해야 합니다. dwPenStyle이 PS_GEOMETRIC 경우 모든 멤버를 사용하여 펜의 브러시 특성을 지정해야 합니다.
[in] cStyle
lpStyle 배열의 길이(DWORD 단위)입니다. dwPenStyle이 PS_USERSTYLE 않으면 이 값은 0이어야 합니다.
스타일 수는 16으로 제한됩니다.
[in] pstyle
배열에 대한 포인터입니다. 첫 번째 값은 사용자 정의 스타일에서 첫 번째 대시의 길이를 지정하고, 두 번째 값은 첫 번째 공간의 길이 등을 지정합니다. dwPenStyle이 PS_USERSTYLE 않은 경우 이 포인터는 NULL이어야 합니다.
선 그리기 중에 lpStyle 배열을 초과하면 포인터가 배열의 시작 부분으로 다시 설정됩니다. 이 경우 dwStyleCount 가 짝수이면 대시 및 공백 패턴이 반복됩니다. 그러나 dwStyleCount 가 홀수이면 포인터가 다시 설정되면 패턴이 반전됩니다. lpStyle 의 첫 번째 요소는 이제 공백을 참조하고 두 번째 요소는 대시를 참조하는 등입니다.
반환 값
함수가 성공하면 반환 값은 논리 펜을 식별하는 핸들입니다.
함수가 실패하면 반환 값은 0입니다.
설명
기하학적 펜은 너비를 가질 수 있으며 디더 및 패턴과 같은 브러시의 특성을 가질 수 있습니다. 화장품 펜은 단일 픽셀 너비일 수 있으며 단색이어야 하지만 화장품 펜은 일반적으로 기하학적 펜보다 빠릅니다.
기하학적 펜의 너비는 항상 월드 단위로 지정됩니다. 화장품 펜의 너비는 항상 1입니다.
끝 대문자와 조인은 기하학적 펜에 대해서만 지정됩니다.
애플리케이션이 논리 펜을 만든 후 SelectObject 함수를 호출하여 해당 펜을 디바이스 컨텍스트로 선택할 수 있습니다. 펜을 디바이스 컨텍스트로 선택한 후 선과 곡선을 그리는 데 사용할 수 있습니다.
dwPenStyle이 PS_COSMETIC PS_USERSTYLE 경우 lpStyle 배열의 항목은 스타일 단위에서 대시 및 공백의 길이를 지정합니다. 스타일 단위는 펜이 선을 그리는 데 사용되는 디바이스에 의해 정의됩니다.
dwPenStyle이 PS_GEOMETRIC PS_USERSTYLE 경우 lpStyle 배열의 항목은 논리 단위로 대시 및 공백의 길이를 지정합니다.
dwPenStyle이 PS_ALTERNATE 경우 스타일 단위가 무시되고 다른 모든 픽셀이 설정됩니다.
lplb가 가리키는 LOGBRUSH 구조체의 lbStyle 멤버가 BS_PATTERN 경우 해당 구조체의 lbHatch 멤버가 가리키는 비트맵은 DIB 섹션이 될 수 없습니다. DIB 섹션은 CreateDIBSection에서 만든 비트맵입니다. 해당 비트맵이 DIB 섹션이면 ExtCreatePen 함수가 실패합니다.
애플리케이션에 지정된 펜이 더 이상 필요하지 않은 경우 DeleteObject 함수를 호출하여 펜을 삭제해야 합니다.
Icm: 펜을 만들 때는 색 관리가 수행되지 않습니다. 그러나 펜을 ICM 지원 디바이스 컨텍스트로 선택하면 색 관리가 수행됩니다.
예제
예제는 펜 사용을 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | wingdi.h(Windows.h 포함) |
라이브러리 | Gdi32.lib |
DLL | Gdi32.dll |