그래픽
Programming/API 2015. 6. 8. 22:04GDI 오브젝트
GDI (Graphic Device Interface)
- 화면, 프린터 등의 모든 출력 장치를 제어하는 윈도우즈의 핵심 모듈 중 하나이다.
- 윈도우즈 프로그램에서의 모든 출력은 GDI를 통해서 화면과 프린터로 나가게 되어 있다.
GDI Object
- 그래픽 출력에 사용되는 도구를 말한다.
- 펜, 브러시, 비트맵, 폰트 등등이 모두 GDI 오브젝트이다.
GDI Object를 모아놓은 것이 DC이며 GDI는 현재 DC에 선택되어 있는 GDI 오브젝트를 사용한다.
사용자는 그래픽을 그리기 전에 DC에 적절한 오브젝트를 선택함으로써 원하는 모양과 속성으로
그래픽을 출력할 수 있다.
DC가 BeginPaint나 GetDC로 인해 처음 만들어졌을 떄 디폴트로 선택된 GDI 오브젝트가 다음과 같다.
GDI 오브젝트 |
핸들 타입 |
설명 |
디폴트 |
펜 |
HPEN |
선을 그을때 |
검정색의 가는 실선 |
브러쉬 |
HBRUSH |
면을 채울때 |
흰색 |
폰트 |
HFONT |
문자 출력에 사용되는 글꼴 |
시스템 글꼴 |
비트맵 |
HBITMAP |
비트맵 이미지 |
선택안됨 |
팔레트 |
HPALETTE |
팔레트 |
선택안됨 |
리전 |
HRGN |
화면상의 영역 |
선택안됨 |
Stock Object
- 윈도우즈가 기번적으로 제공하는 GDI 오브젝트를 말한다.
함수원형
HGDIOBJ GetStockObject( int fnObject );
fnObject 인수에 사용하고자 하는 StockObject를 지정하는데 사용가능한 스톡 오브젝트
fnObject |
설명 |
BLACK_BRUSH |
검정색 브러시 |
GRAY_BRUSH |
회색 |
NULL_BRUSH |
투명 |
WHITE_BRUSH |
흰색 |
DKGRAY_BRUSH |
짙은 회색 |
LTGRAY_BRUSH |
옅은 회색 |
DC_BRUSH |
색상 브러쉬. SetDCBrushColor함수로 설정 |
BLACK_PEN |
검정색 펜 |
WHITE_PEN |
흰색 펜 |
NULL_PEN |
투명 펜 |
DC_PEN |
색상 펜. SelfDCPenColor 함수로 설정 |
ANSI_FIXED_FONT |
고정폭 폰트 |
ANSI_VAR_FONT |
가변폭 폰트 |
DEFAULT_PALETTE |
시스템 팔레트 |
색상
윈도우즈에서 색상을 표현하는 방법
윈도우즈에서는 색상값을 표현하기 위해서 COLORREF라는 데이터형을 사용한다.
typedef DWORD COLORREF;
COLORREF는형은 부호없는 32비트 크기의 정수형이며, 8비트씩 빨간색, 초록색, 파란색의
농도를 나타내고 상위 8비트는 사용되지 않는다.
각 색상의 요소는 1바이트의 크기를 가지므로 0~255까지의 농도를 표현할 수 있고
이 색상 요소의 혼합에 의해 색상 하나가 만들어진다.
|
B |
G |
R |
COLORREF형은 32비트 정수일 뿐이므로 16진수로 직접 표현할 수 있다.
펜
펜은 선을 그을 떄 사용되는 GDI Object이다.
HPEN CreatePen( int fnPenStyle, int nWidth, COLORREF crColor);
fnPenStyle
- 그려질 선의 모양을 지정한다.
- 이 값을 변경하면 실선뿐 아니라 다양한 형태의 선을 만들 수 있다
- PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT
nWIdth
- 선의 폭을 지정한다.
crColor
- 선의 색상을 지정한다.
리턴값
- 새로 만든 펜의 핸들이 리턴된다.
'Programming > API' 카테고리의 다른 글
LPARAM과 WPARAM (0) | 2015.06.09 |
---|---|
무효화 영역 (0) | 2015.06.09 |
마우스 입력 (0) | 2015.06.08 |
그래픽 출력, 메세지 박스 (0) | 2015.06.08 |
문자열 출력 (0) | 2015.06.08 |