Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 동적 데커레이터
- 싱글톤
- 컴포지트 빌더
- 모던C++디자인패턴
- 싱글턴
- 동적 데코레이터
- 싱글톤 패턴
- 디자인 패턴
- 팩터리 패턴
- 프로토타입 중복처리
- 그루비 스타일 빌더
- 브릿지
- 단순한 빌더
- 컴포지트
- 추상 팩터리
- 디자인패턴
- 팩터리 메서드
- 팩터리
- 흐름식 빌더
- 싱글턴 패턴
- 빌더 패턴
- 프로토타입
- 함수형 팩터리
- 내부 팩터리
- 브릿지 패턴
- 데커레이터 패턴
- 데커레이터
- 빌더
- 컴포지트 패턴
- 프로토타입 패턴
Archives
- Today
- Total
GGym's Practice Notes
GDI Object 본문
GDI (Graphic Device Interface)
GDI Object : 그래픽 출력에 사용되는 도구들 (펜, 브러시, 비트맵, 폰트)
- 펜 : 선을 그을 때 사용
- 브러시 : 면을 채울 때 사용
- 비트맵 : 비트맵 파일
> GDI 오브젝트를 모아 놓은것 : DC -> 선, 면에 대한 정보가 다 있음. 현재 선택되어 있는 GDI 오브젝트 사용
> 그래픽을 그리기전에 DC에 적절한 오브젝트를 선택하고 원하는 모양과 속성으로 그래픽 출력
> GDI 오브젝트는 보통 Render()함수 내부에 구현
GDI 오브젝트는 핸들로 관리 : HPEN, HBRUSH, HBITMAP
GDI오브젝트를 바꾸어가면서 쓸때 순서를 유의
1 핸들 선언 2 GDI 오브젝트 만듬 3 DC선택 이전 핸들 저장 4 사용 5 선택 해제 6 삭제 |
# 펜
선을 그을때 사용하는 GDI 오브젝트
HPEN CreatePen(int iStyle, int cWidth, COLORREF color) |
iStyle : PS_SOLID / PS_DASH / PS_DOT / PS_DASHDOT / PS_DASHDOTDOT |
hdc = BeginPaint(hWnd, &ps); // 핸들선언
HPEN hNewPen = CreatePen(PS_SOLID, 5, RGB(0, 0, 255)); // GDI 오브젝트 만듬
HPEN hOldPen = (HPEN)SelectObject(hdc, hNewPen); // 이전 핸들 저장
Rectangle(hdc, 50, 50, 300, 200); // 사용
SelectObject(hdc, hOldPen); // 선택 해제
DeleteObject(hNewPen); // 삭제
EndPaint(hWnd, &ps);
사용을 다한 펜/브러쉬는 생성했으면 이전의 펜/브러쉬로 해제 해주어야 한다.
GDI 오브젝트도 메모리를 사용하기 때문에 더 이상 사용하지 않을때에는 DeleteObject를 통해서 메모리를 삭제
# 브러쉬
HBRUSH CreateSolidBrush(COLORREF color) |
HBRUSH CreateHatchBrush(int iHatch, COLORREF color) |
iHatch : HS_BDIAGONAL / HS_CROSS / HS_DIAGCROSS / HS_FDIAGONAL / HS_HORIZONTAL / HS_VERTICAL |
HBRUSH hNewBrush = CreateSolidBrush(RGB(0, 0, 255));
HBRUSH hNewBrush = CreateHatchBrush(HS_CROSS, RGB(0, 0, 255));
펜의 사용방법과 같다 사용을 하고 나면 해제해주고 삭제하면 된다.
'WinAPI' 카테고리의 다른 글
WinAPI에 OpenGL 쓰기 (0) | 2020.05.13 |
---|---|
DC (Device Context) (0) | 2020.05.07 |
윈도우 창크기 조정 세팅 (AdjustWindowRect(), SetWindowPos) (0) | 2020.05.07 |
WinAPI 기본 구조 (0) | 2020.05.07 |