딸기 공부방/MFC공부방
SelectObject 함수 사용시 주의점(내장 오프젝트 내용 포함)
특별한녀석
2008. 1. 28. 02:56
// 코드 1
CPen pen;
pen.CreatPen(PS_SOLID, 3, RGB(255, 0, 0));
// 코드 2
CClientDC dc(this);
CPen *poldpen = dc.SelectObject(&pen); // 원래 들어있던 GDI 오브젝트 반환
dc.Rectangle(10, 10, 100, 100);
dc.SelectObject(&poldpen); // 원래 들어있던 GDI 설정
위 코드처럼 하면 지역변수가 사라져도 프로그램은 문제가 없다.
단 내장 오브젝트는 위 과정을 생략할 수 있다.
예제코드
// 코드3
CClientDC dc;
dc.SelectStockObject(WHITE_PEN);
dc.Rectangle(10, 10, 100, 100)
내장 오브젝트 종류
펜
BLACK_PEN
WHITE_PEN
NULL_PEN
브러시
BLACK_BRUSH
WHITE_BRUSH
DKGRAY_BRUSH
GRAY_BRUSH
HOLLOW_BRUSH
LTGRAY_BRUSH
NULL_BRUSH
글꼴
ANSI_FIXED_FONT
ANSI_VAR_FONT
DEVICE_DEFAULT_FONT
OEM_FIXED_FONT
SYSTEM_FONT
CPen pen;
pen.CreatPen(PS_SOLID, 3, RGB(255, 0, 0));
// 코드 2
CClientDC dc(this);
CPen *poldpen = dc.SelectObject(&pen); // 원래 들어있던 GDI 오브젝트 반환
dc.Rectangle(10, 10, 100, 100);
dc.SelectObject(&poldpen); // 원래 들어있던 GDI 설정
위 코드처럼 하면 지역변수가 사라져도 프로그램은 문제가 없다.
단 내장 오브젝트는 위 과정을 생략할 수 있다.
예제코드
// 코드3
CClientDC dc;
dc.SelectStockObject(WHITE_PEN);
dc.Rectangle(10, 10, 100, 100)
내장 오브젝트 종류
펜
BLACK_PEN
WHITE_PEN
NULL_PEN
브러시
BLACK_BRUSH
WHITE_BRUSH
DKGRAY_BRUSH
GRAY_BRUSH
HOLLOW_BRUSH
LTGRAY_BRUSH
NULL_BRUSH
글꼴
ANSI_FIXED_FONT
ANSI_VAR_FONT
DEVICE_DEFAULT_FONT
OEM_FIXED_FONT
SYSTEM_FONT