다음을 통해 공유


LOGFONTW 구조체(shtypes.h)

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

통사론

typedef struct tagLOGFONTW {
  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;
  WCHAR lfFaceName[32];
} LOGFONTW;

회원

lfHeight

형식: LONG

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

묘사
> 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 멤버는 이스케이프와 방향을 모두 지정합니다. lfEscapement 설정하고 lfOrientation 동일한 값으로 설정해야 합니다.

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
 
한국어 창
JOHAB_CHARSET
 
Middle-Eastern Windows
HEBREW_CHARSET
ARABIC_CHARSET
 
태국어 창
THAI_CHARSET
 

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

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

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

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

lfOutPrecision

형식: BYTE

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

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

lfClipPrecision

형식: BYTE

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

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

lfQuality

형식: BYTE

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

묘사
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 연산자를 사용하여 하나의 피치 상수와 하나의 패밀리 상수에 조인하여 적절한 값을 얻을 수 있습니다.

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

묘사
FF_DECORATIVE 참신한 글꼴(예: 오래된 영어).
FF_DONTCARE 상관하거나 모른다.
FF_MODERN 세리프가 있거나 없는 상수 스트로크 너비(모노스페이스)가 있는 글꼴입니다. 모노스페이스 글꼴은 일반적으로 최신(예: 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에 정의됩니다.

메모

shtypes.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 LOGFONT를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

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

참고 항목

IVisualProperties::GetFont

IVisualProperties::SetFont