'2011/12/02'에 해당되는 글 2건

  1. 2011.12.02 ascii 테이블 표
  2. 2011.12.02 Charset



Posted by - Hanguel Sarang 성군처럼

댓글을 달아 주세요

2011. 12. 2. 12:56
24.GDI (4) Font - CreateFont(), LOGFONT 구조체, CreateFontIndirect(), SetTextColor(), SetBkColor(), SetBkMode()

- HFONT CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, DWORD fdwItalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD fdwCharSet, DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, DWORD fdwPitchAndFamily, LPCTSTR lpszFace )

리턴값 : 생성된 폰트의 핸들.

인수 설명
nHeight 폰트의 높이를 논리적인 단위로 지정한다. 이 값이 0일 경우는 디폴트 크기가 사용된다.
hWidth 폰트의 폭을 지정하되 이 값이 0이면 nHeight에서 지정한 높이에 따라 폭을 자동으로 결정한다. 즉 이 값이 0이면 폰트의 종횡비(장평)가 일정하다.
nEscapement 폰트의 각도를 0.1도 단위로 설정한다. 이 각도는 문자가 출력될 X출과 문자열과의 각도이며 일상적인 360분법의 각도 체계를 사용한다. 즉 세시 방향이 0도로 사용되며 반시계 방향으로 각도가 증가한다.
nOrientation 글자 한자와 X축과의 각도를 지정한다. nEscapement는 전체 문자열의 기울기를 지정하는데 비해 이 인수는 개별 문자의 기울기를 설정한다.
nWeight 폰트의 무게를 0~1000까지의 값으로 설정한다. 쉽게 말해서 폰트의 두께를 설정한다. 0~1000까지의 값을 지정할 수 있으며 보통 굵기인 FW_NORMAL이 400이다.
bItalic, bUnderline, cStrikeOut 기울임체, 밑줄, 관통선 속성을 설정한다. 데이터형이 BYTE이지만 불린형처럼 사용한다. 속성을 주고 싶으면 0 이외의 값(TRUE)를 주고 속성을 주지 않으려면 0(FALSE)를 준다.
nCharSet 문자 셋을 설정한다. 여러 가지 값이 있지만 실제 사용될 수 있는 옵션은 ANSI_CHARSET과 OEM_CHARSET가 있다. ANSI_CHARSET가 윈도우즈에서 사용하는 문자셋이고 OEM_CHARSET가 도스에서 사용하는 문자셋이라고 생각하면 된다.
nOutPrecision 출력 정확도를 설정한다.
nClipPrecision 클리핑 정확도를 설정한다.
nQuality 논리적 폰트를 물리적 폰트에 얼마나 근접시킬 것인가를 지정한다.
nPitchAndFamily 폰트의 피치와 그룹을 설정한다.
lpszFacename 글꼴의 이름을 나타내는 문자열을 설정한다.

인수는 www.winapi.co.kr 에서 발취.

 

쉬운 설명 :

1. CreateFont로 FONT생성, 핸들을 받음(이하 HFONT) 

2. SelectObject로 FONT핸들을 선택(hdc가 HFONT을 사용하게끔..) 

3. 사용(이때 hdc는 HFONT를 사용하게 된다) 

4. 사용이 끝났으면 SelectObject로 복구(복구를 안하면 차후 hdc 는 HFONT를 이용하게 됨)

5. DelectObject로 HFONT를 지움.

 

 

 

- LOGFONT 구조체

 LOGFONT 구조체의 내용은 CreateFont()함수의 매개변수 들과 같다. CreateFontIndirect() 에 사용하기 위해 제작된다.

 

 

 

- HFONT CreateFontIndirect( CONST LOGFONT *lplf )

LOGFONT 구조체의 정보를 이용하여 폰트를 생성한다.

리턴값 : 생성된 폰트의 핸들

lplf : LOGFONT 구조체의 포인터

 

쉬운 설명 : (CreateFont()와 차이점은 LOGFONT 구조체로 인스턴스 생성, 정보 입력한다는 것뿐.)

1. LOGFONT 구조체로 인스턴스 생성, 정보 입력.

1. CreateFontIndirect()로 FONT생성, 핸들을 받음(이하 HFONT) 

2. SelectObject로 FONT핸들을 선택(hdc가 HFONT을 사용하게끔..) 

3. 사용(이때 hdc는 HFONT를 사용하게 된다) 

4. 사용이 끝났으면 SelectObject로 복구(복구를 안하면 차후 hdc 는 HFONT를 이용하게 됨)

5. DelectObject로 HFONT를 지움.

 

윈도우 API 함수들 중에서 *****Indirect() 의 형태( Indirect 가 붙은..) 함수들은 대부분(특수한 목적의) 구조체의 포인터를 인수로 취한다.

 

 

 

-COLORREF SetTextColor( HDC hdc, COLORREF crColor );

Text의 컬러를 설정한다.

리턴값 : 성공하면 이전컬러값을 리턴한다. 실패하면 CLR_INVALID를 리턴.

hdc : 현재 값을 사용할 DC

crColor  : 설정할 색

현재 Text의 색을 가져오는 GetTextColor() 함수도 있음.

 

 

 

- COLORREF SetBkColor( HDC hdc, COLORREF crColor );

Text의 배경 컬러를 설정한다.

리턴값 : 성공하면 이전 배경 컬러값을 리턴한다. 실패하면  CLR_INVALID를 리턴.

hdc : 현재 값을 사용할 DC

crColor  : 설정할 색

현재 Text 배경의 색을 가져오는 GetBkColor()함수도 있음.

 

 

 

-int SetBkMode( HDC hdc, int iBkMode );

배경색상을 사용할 방법 설정

리턴값 : 성공하면 이전 iBkMode 의 값을 리턴. 실패하면 0 을 리턴.

hdc : 현재 값을 사용할 DC

iBkMode : 배경색상을 사용 상수

 

iBkMode

OPAQUE : 디폴트, 불투명한 배경을 사용한다. 배경색상에 의해 뒷쪽의 그림이 지워진다.

TRANSPARENT : 투명한 배경을 사용한다. 문자를 출력한 뒤에도 배경이 바뀌지지 않는다.

출저 : http://angelkkm80.blog.me/20040757916

Posted by - Hanguel Sarang 성군처럼

댓글을 달아 주세요

이전버튼 1 이전버튼