본문 바로가기

Program Languege/WinAPI

GDI 오브젝트

GDI 오브젝트 

 

 GDI 오브젝트란 그래픽 출력에 사용되는 도구를 말하며 펜, 브러시, 비트맵, 폰트 등등이 모두 GDI 오브젝트이다. 사람이 그림을 그릴 때 연필, 붓 등의 도구를 사용하는 것과 마찬가지로 GDI가 그래픽을 출력할 때는 GDI 오브젝트를 사용한다. 즉 선을 그을 때는 펜으로 그리며 면은 브러시로 채우고 문자열을 출력할 때는 폰트를 사용한다. GDI 오브젝트를 모아 놓은 것이 DC이며 GDI는 현재 Dc에 선택되어 있는 GDI 오브젝트를 사용한다. 그래서 사용자는 그래픽을 그리기 전에 DC에 적절한 오브젝트를 선택함으로써 원하는 모양과 속성으로 그래픽을 출력할 수 있다.

 

 

GDI 오브젝트 

 핸들 타입 

 설명 

 디폴트 

 펜

 HPEN

 선을 그을 때 사용된다. 

 검정색의 가는 실선

 브러시

 HBRUSH

 면을 채울 때 사용된다.

 흰색

 폰트

 HFONT

 문자 출력에 사용되는 글꼴

 시스템 글꼴

 비트맵

 HBITMAP

 비트맵 이미지

 선택되지 않음

 팔레트

 HPALETTE

 팔레트

 선택되지 않음

 리전

  HRGN

 화면상의 영역

 선택되지 않음

 

 

 

스톡 오브젝트

 

 스톡 오브젝트는 윈도우즈가 기본적으로 제공하는 GDI 오브젝트를 말한다. 아주 빈번하게 사용되므로 운영체제가 부팅할 때부터 미리 만들어 놓는다. 우리가 일부러 만들지 않아도 언제든지 사용할 수 있으며 사용하고 난 후에 파괴할 필요도 없다.

 

     HGDIOBJ GetStockObject(int fnObject);

 

위의 함수를 통해 핸들을 얻어 사용하기만 하면 된다.

 

 

fnObject 

  설명

 BLACK_BRUSH

 검정색 브러시 

 GRAY_BRUSH

 회색 브러시 

 NULL_BRUSH

 투명 브러시 

 WHITE_BRUSH

 흰색 브러시

 DKGRAY_BRUSH

 짙은 회색 브러시 

 LTGRAY_BRUSH

 옅은 회색 브러시

 DC_BRUSH

 색상 브러시. SetDCBrushColor 함수로 설정한다.

 BLACK_PEN

 검정색 펜

 WHITE_PEN

 흰색 펜

 NULL_PEN

 투명 펜

 DC_PEN

 색상 펜 SetDCPenColor 함수로 설정한다.

 ANSI_FIXED_FONT

 고정폭 폰트

 ANSI_VAR_FONT

 가변폭 폰트

 DEFAULT_PALETTE

 시스템 팔레트

 

 

 주로 무채색의 브러시와 펜만 제공되며 원색 브러시는 직접 만들어 써야한다. DC_BRUSH, DC_PEN 스톡 오브젝트는 2000이상에서만 사용할 수 있는데 별도의 함수로 색상을 변경할 수 있어 편리하지만 95/98에서는 지원하지 않으므로 함부로 사용하기는 힘들다.

 

 

 

출처 - 윈도우즈 정복 WINAPI 1권

'Program Languege > WinAPI' 카테고리의 다른 글

QueryPerformance  (0) 2014.04.10
PeekMessage  (0) 2014.04.10
GetKeyState & GetAsyncState  (0) 2014.03.29
HINSTANCE  (0) 2014.03.25
HANDLE  (0) 2014.03.25