다음을 통해 공유


LOGFONTW 구조체(wingdi.h)

LOGFONT 구조체는 글꼴의 특성을 정의합니다.

통사론

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[LF_FACESIZE];
} LOGFONTW, *PLOGFONTW, *NPLOGFONTW, *LPLOGFONTW;

회원

lfHeight

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

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

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

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

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


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

lfWidth

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

lfEscapement

이스케이프 벡터와 디바이스의 x축 사이의 각도(10도)입니다. 이스케이프 벡터는 텍스트 행의 기본 줄과 평행합니다.

그래픽 모드가 GM_ADVANCED 설정되면 문자열 문자의 방향 각도와 독립적으로 문자열의 이스케이프 각도를 지정할 수 있습니다.

그래픽 모드가 GM_COMPATIBLE 설정되면 lfEscapement 이스케이프와 방향을 모두 지정합니다. lfEscapement 설정하고 lfOrientation 동일한 값으로 설정해야 합니다.

lfOrientation

각 문자의 기준선과 디바이스의 x축 사이의 각도(10도)입니다.

lfWeight

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

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

무게
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

true기울기 글꼴입니다.

lfUnderline

TRUE설정하면 밑줄이 그은 글꼴입니다.

lfStrikeOut

TRUE설정된 경우 취소선 글꼴입니다.

lfCharSet

문자 집합입니다. 다음 값은 미리 정의되어 있습니다.

  • 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
  • VIETNAMESE_CHARSET
Windows의 한국어 버전:
  • JOHAB_CHARSET
Windows의 중동 언어 버전:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
Windows의 태국어 버전:
  • THAI_CHARSET
OEM_CHARSET 값은 운영 체제에 종속된 문자 집합을 지정합니다.

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

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

이 매개 변수는 글꼴 매핑 프로세스에서 중요합니다. 글꼴을 만들 때 일관된 결과를 얻으려면 OEM_CHARSET 또는 DEFAULT_CHARSET 지정하지 마세요. lfFaceName 멤버에 서체 이름을 지정하는 경우 lfCharSet 값이 lfFaceName지정된 서체의 문자 집합과 일치하는지 확인합니다.

lfOutPrecision

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

의미
OUT_CHARACTER_PRECIS 사용되지 않습니다.
OUT_DEFAULT_PRECIS 기본 글꼴 매퍼 동작을 지정합니다.
OUT_DEVICE_PRECIS 시스템에 동일한 이름의 여러 글꼴이 포함된 경우 디바이스 글꼴을 선택하도록 글꼴 매퍼에 지시합니다.
OUT_OUTLINE_PRECIS 이 값은 TrueType 및 기타 개요 기반 글꼴 중에서 선택하도록 글꼴 매퍼에 지시합니다.
OUT_PS_ONLY_PRECIS 글꼴 매퍼에 PostScript 글꼴만 선택하도록 지시합니다. 시스템에 PostScript 글꼴이 설치되어 있지 않으면 글꼴 매퍼가 기본 동작으로 돌아갑니다.
OUT_RASTER_PRECIS 시스템에 이름이 같은 여러 글꼴이 포함된 경우 래스터 글꼴을 선택하도록 글꼴 매퍼에 지시합니다.
OUT_STRING_PRECIS 이 값은 글꼴 매퍼에서 사용되지 않지만 래스터 글꼴이 열거될 때 반환됩니다.
OUT_STROKE_PRECIS 이 값은 글꼴 매퍼에서 사용되지 않지만 TrueType, 다른 개요 기반 글꼴 및 벡터 글꼴이 열거될 때 반환됩니다.
OUT_TT_ONLY_PRECIS TrueType 글꼴 중에서만 선택하도록 글꼴 매퍼에 지시합니다. 시스템에 TrueType 글꼴이 설치되어 있지 않으면 글꼴 매퍼가 기본 동작으로 돌아갑니다.
OUT_TT_PRECIS 시스템에 동일한 이름의 여러 글꼴이 포함된 경우 글꼴 매퍼가 TrueType 글꼴을 선택하도록 지시합니다.
 

애플리케이션은 OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS, OUT_TT_PRECIS 및 OUT_PS_ONLY_PRECIS 값을 사용하여 운영 체제에 지정된 이름의 글꼴이 둘 이상 포함된 경우 글꼴 매퍼가 글꼴을 선택하는 방법을 제어할 수 있습니다. 예를 들어 운영 체제에 래스터 및 TrueType 형식의 기호라는 글꼴이 포함된 경우 OUT_TT_PRECIS 지정하면 글꼴 매퍼가 TrueType 버전을 선택하게 됩니다. OUT_TT_ONLY_PRECIS 지정하면 다른 이름의 TrueType 글꼴로 대체해야 하는 경우에도 글꼴 매퍼가 TrueType 글꼴을 선택하게 됩니다.

lfClipPrecision

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

좌표계 방향에 대한 자세한 내용은 nOrientation 매개 변수에 대한 설명을 참조하세요.

의미
CLIP_CHARACTER_PRECIS 사용되지 않습니다.
CLIP_DEFAULT_PRECIS 기본 클리핑 동작을 지정합니다.
CLIP_DFA_DISABLE Windows XP SP1: 글꼴에 대한 글꼴 연결을 해제합니다. 이 플래그는 Windows Server 2003 이후의 모든 플랫폼에 영향을 주지 않습니다.
CLIP_EMBEDDED 포함된 읽기 전용 글꼴을 사용하려면 이 플래그를 지정해야 합니다.
CLIP_LH_ANGLES 이 값을 사용하면 모든 글꼴의 회전은 좌표계의 방향이 왼손인지 오른손인지에 따라 달라집니다. 사용하지 않는 경우 디바이스 글꼴은 항상 시계 반대 방향으로 회전하지만 다른 글꼴의 회전은 좌표계의 방향에 따라 달라집니다.
CLIP_MASK 사용되지 않습니다.
CLIP_DFA_OVERRIDE 글꼴에 대한 글꼴 연결을 해제합니다. 이는 CLIP_DFA_DISABLE 동일하지만 경우에 따라 문제가 발생할 수 있습니다. 사용할 권장 플래그는 CLIP_DFA_DISABLE.
CLIP_STROKE_PRECIS 글꼴 매퍼에서 사용되지 않지만 래스터, 벡터 또는 TrueType 글꼴이 열거되면 반환됩니다. 호환성을 위해 이 값은 글꼴을 열거할 때 항상 반환됩니다.
CLIP_TT_ALWAYS 사용되지 않습니다.

lfQuality

출력 품질입니다. 출력 품질은 GDI(그래픽 디바이스 인터페이스)가 논리 글꼴 특성을 실제 실제 글꼴 특성과 일치시키려고 얼마나 신중하게 시도해야 하는지를 정의합니다. 다음 값 중 하나일 수 있습니다.

의미
ANTIALIASED_QUALITY 글꼴이 지원하고 글꼴 크기가 너무 작거나 너무 크지 않은 경우 글꼴은 항상 앤티앨리어스됩니다.
CLEARTYPE_QUALITY 설정된 경우 ClearType 앤티앨리어싱 메서드를 사용하여 텍스트가 렌더링됩니다(가능한 경우). 자세한 내용은 비고를 참조하세요.
DEFAULT_QUALITY 글꼴의 모양은 중요하지 않습니다.
DRAFT_QUALITY 글꼴 모양은 PROOF_QUALITY 사용하는 경우보다 덜 중요합니다. GDI 래스터 글꼴의 경우 크기 조정이 사용되므로 더 많은 글꼴 크기를 사용할 수 있지만 품질은 낮을 수 있습니다. 필요한 경우 굵게, 기울임꼴, 밑줄 및 취소선 글꼴이 합성됩니다.
NONANTIALIASED_QUALITY 글꼴은 앤티앨리어스되지 않습니다.
PROOF_QUALITY 글꼴의 문자 품질은 논리 글꼴 특성의 정확한 일치보다 더 중요합니다. GDI 래스터 글꼴의 경우 크기 조정이 비활성화되고 크기가 가장 가까운 글꼴이 선택됩니다. 선택한 글꼴 크기는 PROOF_QUALITY 사용할 때 정확히 매핑되지 않을 수 있지만 글꼴 품질이 높고 모양이 왜곡되지 않습니다. 필요한 경우 굵게, 기울임꼴, 밑줄 및 취소선 글꼴이 합성됩니다.
 

ANTIALIASED_QUALITY 또는 NONANTIALIASED_QUALITY 모두 선택되지 않은 경우 사용자가 제어판에서 부드러운 화면 글꼴을 선택하는 경우에만 글꼴이 앤티앨리어스됩니다.

lfPitchAndFamily

글꼴의 피치 및 패밀리입니다. 두 개의 낮은 순서 비트는 글꼴의 피치를 지정하며 다음 값 중 하나일 수 있습니다.

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

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

의미
FF_DECORATIVE 참신한 글꼴입니다. 오래된 영어가 그 예입니다.
FF_DONTCARE 기본 글꼴을 사용합니다.
FF_MODERN 세리프가 있거나 없는 상수 스트로크 너비(모노스페이스)가 있는 글꼴입니다. 모노스페이스 글꼴은 일반적으로 최신입니다. Pica, Elite 및 CourierNew가 그 예입니다.
FF_ROMAN 가변 스트로크 너비(비례) 및 세리프가 있는 글꼴입니다. MS Serif가 그 예입니다.
FF_SCRIPT 필기처럼 보이도록 디자인된 글꼴입니다. 스크립트 및 커서가 예입니다.
FF_SWISS 가변 스트로크 너비(비례)와 세리프가 없는 글꼴입니다. MS Sans Serif가 그 예입니다.

lfFaceName[LF_FACESIZE]

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

발언

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

  • 텍스트가 프린터에서 렌더링됩니다.
  • 256색 이하의 표시 집합입니다.
  • 텍스트는 터미널 서버 클라이언트에 렌더링됩니다.
  • 글꼴이 TrueType 글꼴이나 TrueType 윤곽선이 있는 OpenType 글꼴이 아닙니다. 예를 들어 다음에서는 ClearType 앤티앨리어싱을 지원하지 않습니다. 유형 1 글꼴, TrueType 윤곽선이 없는 Postscript OpenType 글꼴, 비트맵 글꼴, 벡터 글꼴 및 디바이스 글꼴.
  • 포함된 비트맵을 포함하는 모든 글꼴 크기에 대해 글꼴이 포함된 비트맵을 튜닝했습니다. 예를 들어 이는 일반적으로 동아시아 글꼴에서 발생합니다.

메모

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

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
헤더 wingdi.h(Windows.h 포함)

참고 항목

CreateFont

CreateFontIndirect

EnumFontFamiliesEx

글꼴 및 텍스트 구조

글꼴 및 텍스트 개요