특별한딸기이야기
SelectObject 함수 사용시 주의점(내장 오프젝트 내용 포함) 본문
// 코드 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
'딸기 공부방 > MFC공부방' 카테고리의 다른 글
View 클래스의 OnInitialUpdate함수 (0) | 2008.01.28 |
---|---|
WM_TIMER 사용법 (0) | 2008.01.28 |
디바이스 컨텍스트 클래스 관련 (0) | 2008.01.28 |
DC에 저장되는 그래픽 옵션의 범주 (0) | 2008.01.28 |
MFC 도큐먼트 클래스에서의 저장 방법 (0) | 2008.01.22 |