다음을 통해 공유


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
    펜의 스타일을 지정합니다. 사용 가능한 값 목록을 보려면 참조 하십시오의 nPenStyle 매개 변수는 CPen 생성자.

  • nWidth
    펜의 너비를 지정합니다.

    • 첫 번째 버전에 대 한 CreatePen에서이 값이 0 이면 폭 장치 단위에서 항상 매핑 모드에 관계 없이 1 픽셀입니다.

    • 두 번째 버전에 대 한 CreatePen경우 nPenStyle 는 PS_GEOMETRIC, 너비를 논리 단위로 지정 됩니다. 경우 nPenStyle 는 PS_COSMETIC, 너비 1로 설정 해야 합니다.

  • crColor
    RGB 색 펜을 포함합니다.

  • pLogBrush
    가리키는 있는 LOGBRUSH 구조체입니다. 경우 nPenStyle 입니다 PS_COSMETIC, lbColor 소속은 LOGBRUSH 구조체의 펜 색을 지정 및 lbStyle 소속은 LOGBRUSH 구조를 설정 BS_SOLID. 경우 nPenStylePS_GEOMETRIC, 모든 멤버를 사용 하 여 펜 브러시 특성을 지정 해야 합니다.

  • nStyleCount
    더블 워드 단위에서 길이를 지정 된 lpStyle 배열입니다. 이 값은 0 이어야 합니다 nPenStyle 수 없습니다 PS_USERSTYLE.

  • lpStyle
    더블 워드 값의 배열 가리킵니다. 첫 번째 값에서 사용자 정의 스타일 첫 번째 대시의 길이 지정, 둘째 값에서 첫 번째 공백 등의 길이 지정 합니다. 이 포인터 이어야 합니다 NULL 경우 nPenStyle 수 없습니다 PS_USERSTYLE.

반환 값

성공 하면 0이 아닌 또는 메서드가 실패 하면 0이 됩니다.

설명

첫 번째 버전의 CreatePen 펜으로 지정 된 스타일, 너비 및 색을 초기화 합니다. 어떠한 디바이스 컨텍스트에 대 한 현재 펜 펜 이후에 선택할 수 있습니다.

폭이 1 픽셀씩 하나가 항상 있어야 합니다 보다 펜을 PS_NULL, PS_SOLID, 또는 PS_INSIDEFRAME 스타일입니다.

펜이 있는 경우는 PS_INSIDEFRAME 스타일과 논리 색상표의 색을 일치 하지 않는 색 펜 디더링된 색으로 그려집니다. PS_SOLID 디더링된 색으로 펜을 만드는 펜 스타일을 사용할 수 없습니다. 스타일 PS_INSIDEFRAME 와 동일 합니다 PS_SOLID 펜 너비가 1 보다 작거나 같은 경우입니다.

두 번째 버전의 CreatePen 지정 된 스타일, 너비 및 브러쉬 특성을 갖는 논리적 코스메틱 나 기 펜을 초기화 합니다. 성형 펜 두께 항상 1입니다. 기 펜의 너비는 항상 전체 단위로 지정 됩니다. 응용 프로그램 논리 펜을 만든 후에 펜을 디바이스 컨텍스트로 호출 하 여 선택할 수 있습니다에서 CDC::SelectObject 함수입니다. 펜을 디바이스 컨텍스트로 선택한 후 선과 곡선을 그리는 데 사용할 수 있습니다.

  • 경우 nPenStyle 입니다 PS_COSMETICPS_USERSTYLE, 항목에는 lpStyle 배열의 스타일 단위로 대시 및 공백의 길이 지정 합니다. 스타일 단위는 펜 선을 그리는 데 사용 되는 장치에 의해 정의 됩니다.

  • 경우 nPenStyle 입니다 PS_GEOMETRICPS_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);   

요구 사항

헤더: afxwin.h

참고 항목

참조

CPen 클래스

계층 구조 차트

CPen::CreatePenIndirect

CPen::CPen

CGdiObject::DeleteObject

LOGBRUSH