다음을 통해 공유


LOGFONTA 구조체(shtypes.h)

글꼴의 특성을 정의합니다.

구문

typedef struct tagLOGFONTA {
  LONG lfHeight;
  LONG lfWidth;
  LONG lfEscapement;
  LONG lfOrientation;
  LONG lfWeight;
  BYTE lfItalic;
  BYTE lfUnderline;
  BYTE lfStrikeOut;
  BYTE lfCharSet;
  BYTE lfOutPrecision;
  BYTE lfClipPrecision;
  BYTE lfQuality;
  BYTE lfPitchAndFamily;
  CHAR lfFaceName[32];
} LOGFONTA;

멤버

lfHeight

형식: LONG

글꼴의 문자 셀 또는 문자의 높이를 논리적 단위로 지정합니다. 문자 높이 값(em 높이라고도 함)은 문자 셀 높이 값에서 내부 선행 값을 뺀 값입니다. 글꼴 매퍼는 다음과 같은 방식으로 lfHeight 에 지정된 값을 해석합니다.

Description
> 0 글꼴 매퍼는 이 값을 디바이스 단위로 변환하고 사용 가능한 글꼴의 셀 높이와 일치시킵니다.
0 글꼴 매퍼는 일치 항목을 검색할 때 기본 높이 값을 사용합니다.
< 0 글꼴 매퍼는 이 값을 디바이스 단위로 변환하고 사용 가능한 글꼴의 문자 높이와 절대값을 일치시킵니다.
 

모든 높이 비교에서 글꼴 매퍼는 요청된 크기를 초과하지 않는 가장 큰 글꼴을 찾습니다.

이 매핑은 글꼴이 처음으로 사용될 때 발생합니다.

MM_TEXT 매핑 모드의 경우 다음 수식을 사용하여 지정된 포인트 크기의 글꼴 높이를 지정할 수 있습니다.

lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

여기서 MulDiv 는 다음과 같이 정의됩니다.

#define MulDiv(a,b,c)    (((a)*(b))/(c))

lfWidth

형식: LONG

글꼴에 있는 문자의 평균 너비(논리 단위)를 지정합니다. lfWidth가 0이 아닌 경우 디바이스의 가로 세로 비율이 사용 가능한 글꼴의 디지털화 가로 세로 비율과 일치하여 차이의 절대값에 따라 결정되는 가장 가까운 일치 항목을 찾습니다.

lfEscapement

형식: LONG

글자 방향 벡터와 디바이스의 x축 사이의 각도를 10배로 지정합니다. 이스케이프먼트 벡터는 텍스트 행의 기본 줄과 평행합니다.

lfEscapement 멤버는 이스케이프와 방향을 모두 지정합니다. lfEscapementlfOrientation을 동일한 값으로 설정해야 합니다.

lfOrientation

형식: LONG

각 문자의 기준선과 디바이스의 x축 사이의 각도를 10배로 지정합니다.

lfWeight

형식: LONG

0에서 1000 범위의 글꼴 두께를 지정합니다. 예를 들어 400은 보통이고 700은 굵게 표시됩니다. 이 값이 0이면 기본 가중치가 사용됩니다.

편의를 위해 Wingdi.h에 다음 값이 정의됩니다.

무게
FW_DONTCARE 0
FW_THIN 100
FW_EXTRALIGHT 200
FW_ULTRALIGHT 200
FW_LIGHT 300
FW_NORMAL 400
FW_REGULAR 400
FW_MEDIUM 500
FW_SEMIBOLD 600
FW_DEMIBOLD 600
FW_BOLD 700
FW_EXTRABOLD 800
FW_ULTRABOLD 800
FW_HEAVY 900
FW_BLACK 900

lfItalic

형식: BYTE

기울 임꼴 글꼴을 지정하려면 TRUE입니다.

lfUnderline

형식: BYTE

TRUE 이면 밑줄이 그은 글꼴을 지정합니다.

lfStrikeOut

형식: BYTE

TRUE 이면 취소선 글꼴을 지정합니다.

lfCharSet

형식: BYTE

문자 집합을 지정합니다. 미리 정의된 값은 다음과 같습니다.

ANSI_CHARSET BALTIC_CHARSET
CHINESEBIG5_CHARSET DEFAULT_CHARSET
EASTEUROPE_CHARSET GB2312_CHARSET
GREEK_CHARSET HANGUL_CHARSET
MAC_CHARSET OEM_CHARSET
RUSSIAN_CHARSET SHIFTJIS_CHARSET
SYMBOL_CHARSET TURKISH_CHARSET
 
한국어 Windows
JOHAB_CHARSET
 
windows Middle-Eastern
HEBREW_CHARSET
ARABIC_CHARSET
 
태국어 Windows
THAI_CHARSET
 

OEM_CHARSET 값은 운영 체제에 종속된 문자 집합을 지정합니다.

DEFAULT_CHARSET 현재 시스템 로캘에 따라 값으로 설정됩니다. 예를 들어 시스템 로캘이 영어(미국)인 경우 값은 ANSI_CHARSET.

다른 문자 집합이 있는 글꼴은 운영 체제에 있을 수 있습니다. 애플리케이션에서 알 수 없는 문자 집합이 있는 글꼴을 사용하는 경우 해당 글꼴로 렌더링된 문자열을 번역하거나 해석하려고 시도해서는 안 됩니다.

이 멤버는 글꼴 매핑 프로세스에서 중요합니다. 일관된 결과를 보장하려면 특정 문자 집합을 지정합니다. lfFaceName 멤버에서 서체 이름을 지정하는 경우 lfCharSet 값이 lfFaceName에 지정된 서체의 문자 집합과 일치하는지 확인합니다.

lfOutPrecision

형식: BYTE

출력 정밀도를 지정합니다. 출력 정밀도는 출력이 요청된 글꼴의 높이, 너비, 문자 방향, 이스케이프, 피치 및 글꼴 형식과 얼마나 일치하는지 정의합니다. Wingdi.h에 정의된 다음 값 중 하나일 수 있습니다.

Description
OUT_DEFAULT_PRECIS 기본 글꼴 매퍼 동작을 지정합니다.
OUT_RASTER_PRECIS 시스템에 동일한 이름의 여러 글꼴이 포함된 경우 래스터 글꼴을 선택하도록 글꼴 매퍼에 지시합니다.
OUT_STRING_PRECIS 이 값은 글꼴 매퍼에서 사용되지 않지만 래스터 글꼴이 열거될 때 반환됩니다.

lfClipPrecision

형식: BYTE

클리핑 정밀도를 지정합니다. 클리핑 정밀도는 부분적으로 클리핑 영역 외부에 있는 문자를 클리핑하는 방법을 정의합니다. Wingdi.h에 정의된 다음 값 중 하나 이상이 될 수 있습니다.

Description
CLIP_DEFAULT_PRECIS 기본 클리핑 동작을 지정합니다.
CLIP_CHARACTER_PRECIS 사용되지 않습니다.
CLIP_STROKE_PRECIS 글꼴 매퍼에서 사용되지 않지만 래스터, 벡터 또는 TrueType 글꼴이 열거될 때 반환됩니다.

lfQuality

형식: BYTE

출력 품질을 지정합니다. 출력 품질은 GDI가 논리 글꼴 특성을 실제 실제 글꼴의 특성과 일치시키려고 시도하는 방법을 신중하게 정의합니다. Wingdi.h에 정의된 다음 값 중 하나일 수 있습니다.

Description
ANTIALIASED_QUALITY 글꼴에 앤티앨리어싱을 사용하도록 설정합니다. 이 설정이 작동하려면 디스플레이 드라이버에서 앤티앨리어스된 텍스트를 지원해야 합니다.
NONANTIALIASED_QUALITY HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing 레지스트리 하위 키가 있는 경우 초안 품질을 강제로 사용합니다.
CLEARTYPE_COMPAT_QUALITY 호환되는 너비를 사용하여 글꼴에 ClearType 텍스트를 사용하도록 설정합니다. 호환되는 너비는 ClearType이 아닌 텍스트와 간격이 같은 텍스트를 생성합니다.
CLEARTYPE_QUALITY 글꼴에 ClearType 텍스트를 사용하도록 설정합니다. 이 설정이 작동하려면 디스플레이 드라이버에서 ClearType 텍스트를 지원해야 합니다.
DEFAULT_QUALITY 글꼴의 모양은 중요하지 않습니다.
DRAFT_QUALITY GDI 래스터 글꼴의 경우 크기 조정이 활성화되어 더 많은 글꼴 크기를 사용할 수 있지만 품질은 낮을 수 있습니다. 필요한 경우 굵게, 기울임꼴, 밑줄 및 취소선 글꼴이 합성됩니다.

lfPitchAndFamily

형식: BYTE

글꼴의 피치와 그룹을 지정합니다. 두 개의 낮은 순서 비트는 글꼴의 피치를 지정하며 Wingdi.h에 정의된 다음 값 중 하나일 수 있습니다.

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
멤버의 비트 4~7은 글꼴 그룹을 지정하며 Wingdi.h에 정의된 다음 값 중 하나일 수 있습니다.
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
부울 OR 연산자를 사용하여 하나의 피치 상수를 하나의 패밀리 상수와 조인하여 적절한 값을 얻을 수 있습니다.

글꼴 패밀리는 일반적으로 글꼴의 모양을 설명합니다. 원하는 정확한 서체를 사용할 수 없는 경우 글꼴을 지정하기 위한 것입니다. 글꼴 패밀리의 값은 다음과 같습니다.

Description
FF_DECORATIVE 참신한 글꼴(예: 오래된 영어).
FF_DONTCARE 상관하지 않거나 모른다.
FF_MODERN 세리프가 있거나 없는 상수 스트로크 너비(monospace)의 글꼴입니다. 모노스페이스 글꼴은 일반적으로 최신입니다(예: Pica, Elite 및 Courier New).
FF_ROMAN 가변 스트로크 너비(비례) 및 세리프가 있는 글꼴(예: Serif).
FF_SCRIPT 필기처럼 보이도록 디자인된 글꼴(예: 스크립트 및 필기체).
FF_SWISS 가변 스트로크 너비(비례)와 세리프가 없는 글꼴(예: Sans Serif).

lfFaceName[32]

형식: TCHAR[LF_FACESIZE]

글꼴의 서체 이름을 지정하는 null로 끝나는 문자열을 지정합니다. 이 문자열의 길이는 종료 null 문자를 포함하여 32자를 초과하면 안됩니다. EnumFontFamilies 함수를 사용하여 현재 사용 가능한 모든 글꼴의 서체 이름을 열거할 수 있습니다. lfFaceName이 빈 문자열인 경우 GDI는 지정된 다른 특성과 일치하는 첫 번째 글꼴을 사용합니다.

설명

다음 상황에서는 ClearType 앤티앨리어싱을 지원하지 않습니다.

  • 텍스트는 프린터에서 렌더링됩니다.
  • 256가지 이하의 표시 집합입니다.
  • 텍스트는 터미널 서버 클라이언트에 렌더링됩니다.
  • 글꼴은 TrueType 글꼴이나 TrueType 윤곽선이 있는 Microsoft OpenType 글꼴이 아닙니다. 예를 들어 다음은 ClearType 앤티앨리어싱을 지원하지 않습니다. 유형 1 글꼴, TrueType 윤곽선이 없는 Postscript OpenType 글꼴, 비트맵 글꼴, 벡터 글꼴 및 디바이스 글꼴.
  • 글꼴은 포함된 비트맵을 포함하는 모든 글꼴 크기에 대해 포함된 비트맵을 조정했습니다. 예를 들어 이는 일반적으로 동아시아 글꼴에서 발생합니다.
이 구조체는 IVisualProperties 인터페이스의 멤버와 쉽게 사용할 수 있는 Windows Vista의 Shtypes.idl 및 Shtypes.h에 처음 등장했습니다. 그러나 동일한 구조체는 이전 버전의 Windows에서 Wingdi.h 및 Windows.h에 정의됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 shtypes.h(Shtypes.h, Dimm.h 포함)

추가 정보

IVisualProperties::GetFont

IVisualProperties::SetFont