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 연산자( | )를 사용하여 결합됩니다.

펜 형식은 다음 값 중 하나일 수 있습니다.

의미
PS_GEOMETRIC
펜은 기하학적입니다.
PS_COSMETIC
펜은 화장품입니다.
 

펜 스타일은 다음 값 중 하나일 수 있습니다.

의미
PS_ALTERNATE
펜은 다른 모든 픽셀을 설정합니다. (이 스타일은 화장품 펜에만 적용됩니다.)
PS_SOLID
펜은 단색입니다.
PS_DASH
펜이 파선입니다.
PS_DOT
펜이 점선으로 표시됩니다.
PS_DASHDOT
펜에는 번갈아 가며 대시와 점이 있습니다.
PS_DASHDOTDOT
펜에는 번갈아 대시와 이중 점이 있습니다.
PS_NULL
펜이 보이지 않습니다.
PS_USERSTYLE
펜은 사용자가 제공하는 스타일 배열을 사용합니다.
PS_INSIDEFRAME
펜은 단색입니다. 경계 사각형을 사용하는 GDI 그리기 함수에서 이 펜을 사용하면 그림의 크기가 축소되어 펜의 너비를 고려하여 경계 사각형에 완전히 맞습니다. 이는 기하학적 펜에만 적용됩니다.
 

끝 캡은 기하학적 펜에 대해서만 지정됩니다. 끝 상한은 다음 값 중 하나일 수 있습니다.

의미
PS_ENDCAP_ROUND
끝 대문자는 둥근 모양입니다.
PS_ENDCAP_SQUARE
끝 대문자는 정사각형입니다.
PS_ENDCAP_FLAT
끝 대문자는 평평합니다.
 

조인은 기하학적 펜에 대해서만 지정됩니다. 조인은 다음 값 중 하나일 수 있습니다.

의미
PS_JOIN_BEVEL
조인은 세로로 표시됩니다.
PS_JOIN_MITER
조인은 SetMiterLimit 함수에 의해 설정된 현재 제한 내에 있을 때 완화됩니다. 이 제한을 초과하면 조인은 비정상 상태가 됩니다.
PS_JOIN_ROUND
조인은 둥글습니다.

[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

추가 정보

CreateDIBSection

CreatePen

CreatePenIndirect

DeleteObject

GetObject

LOGBRUSH

펜 함수

펜 개요

Selectobject

SetMiterLimit