Windows GDI에서 LOGFONT 구조체를 볼 때, 그리고 글꼴 이름을 이야기 할 때 종종 헷갈리는 부분이 Facename 과 Fontname 이다. 결론부터 말하면, > LOGFONT에는 facename만 있고, fontname이라는 필드는 없다. > 흔히 말하는 font name은 대부분 lfFaceName을 의미한다. {{{+1 LOGFONT의 실제 필드 }}} {{{#!gcode typedef struct tagLOGFONT { 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; TCHAR lfFaceName[LF_FACESIZE]; } LOGFONT; }}} {{{+1 Face Name (lfFaceName) }}} 정의: * GDI에서 폰트를 식별하기 위한 “서체 패밀리 이름” * 사용자가 보통 인식하는 글꼴 이름 예시: {{{#!gcode lf.lfFaceName = TEXT("Malgun Gothic"); lf.lfFaceName = TEXT("Arial"); lf.lfFaceName = TEXT("Times New Roman"); }}} Font Name 이라는 용어는 어디서 나오나? 1. 일반적인 용어(비공식)로 UI, 문서, 개발자 대화에서 "font name" ≒ face name 으로 등장한다. 2. TrueType / OpenType 내부 이름 (완전히 다른 개념) 폰트 파일 내부에는 여러 이름이 있다. {{{ | 이름 | 설명 | | --------------- | ------------ | | Family Name | Arial | | Subfamily Name | Bold | | Full Name | Arial Bold | | PostScript Name | Arial-BoldMT | }}} 3. DirectWrite / GDI+ / WPF 다른 API에서는 font name이 더 세분화된다. DirectWrite 예: * Font Family Name * Font Face Name * Full Font Name {{{+1 Facename과 Fontname에 왜 혼동이 생기나? }}} 1. 문서/예제에서 // set font name 처럼 등장한다. {{{#!gcode // set font name lstrcpy(lf.lfFaceName, TEXT("Arial")); }}} 2. UI에서 “글꼴 이름”이라고 표시된다. 결과적으로 font name이라는 말이 FaceName을 가리키는 관용어처럼 사용된다. {{{ | 가능성 | 의미 | | --------------- | ---------------- | | Face Name | Arial | | Full Name | Arial Bold | | File Name | arialbd.ttf | | Display Name | Arial (TrueType) | | PostScript Name | Arial-BoldMT | }}} ---- CategoryDocument