관리 메뉴

드럼치는 프로그래머

[API/MFC] CPen 본문

★─Programing/☆─API | MFC

[API/MFC] CPen

드럼치는한동이 2013. 6. 14. 10:25

: 모양 그릴 때 사용

 

* DC 펜 기본 값

- 색깔 : 검정색

- 두께 : 1

- 스타일 : 코스메틱 (두께가 두꺼워지면 끝이 둥글게 됨)

 

* 펜 스타일

 스타일

의미 

 PS_SOLID

 실선

 PS_DASH

 대시

 PS_DOT

 점선

 PS_DASHDOT

 대시 + 점

 PS_DASHDOTDOT

 대시 + 점 + 점

 PS_INSIDEFRAME

 도형 그릴 때 두꺼운 펜이 도형의 경계 좌표를 벗어나지 않도록 함

 PS_NULL

 두께가 0, 테두리 없애고 싶을 때 사용

 

예)

CPaintDC dc(this); // device context for painting

CPen NewPen(PS_SOLID, 20, RGB(192, 0, 0));
CPen *pOldPen = dc.SelectObject(&NewPen);
dc.MoveTo(40, 40); // 선의 시작점
dc.LineTo(240, 40); // 선의 끝점
dc.SelectObject(pOldPen);

------------------------------------------------------------------------------------------------

CPaintDC dc(this); // device context for painting

// 펜 유형 변경

LOGBRUSH lb;
lb.lbStyle = BS_SOLID;
lb.lbColor = RGB(192, 0, 0);

CPen NewPen(PS_SOLID | PS_GEOMETRIC | PS_ENDCAP_FLAT, 20, &lb);
CPen *pOldPen = dc.SelectObject(&NewPen);
dc.MoveTo(40, 40); // 선의 시작점
dc.LineTo(240, 40); // 선의 끝점
dc.SelectObject(pOldPen);
dc.MoveTo(40, 40); // 선의 시작점
dc.LineTo(240, 40); // 선의 끝점

------------------------------------------------------------------------------------------------

CPaintDC dc(this); // device context for painting

LOGBRUSH lb;
lb.lbStyle = BS_SOLID;
lb.lbColor = RGB(192, 0, 0);
DWORD style[] = {3, 6, 9}; // Pixel 반복 패턴
CPen NewPen;
NewPen.CreatePen(PS_USERSTYLE | PS_GEOMETRIC | PS_ENDCAP_FLAT, 20, &lb, 3, style);
CPen *pOldPen = dc.SelectObject(&NewPen);
dc.MoveTo(20, 20);
dc.LineTo(220, 20);
dc.SelectObject(pOldPen);

 

[출처] http://blog.naver.com/yell301?Redirect=Log&logNo=130092534611

Comments