본문 바로가기

개발 관련

International Font Management



윈도우즈 7부터 제어판 > 글꼴에 폰트 '표시/숨기기' 기능이 들어가 있다.

그래서 이런 폰트 관리 구조를 통해 사용자의 폰트 선택 리스트에 적합하지 않은 폰트를 숨길 수 있다.

즉, 사용자가 사용하지 않은 언어권의 폰트/사용자 폰트 등을 '숨기기' 기능을 통해 폰트를 관리할 수 있도록 한다는게 MS의 취지인듯 하다.

기본 시스템 세팅은 OS 언어에 맞지 않는 폰트를 숨기도록 되어 있다.

OS에 맞지 않는 언어때문인지 확실하진 않지만, 제법 많은 폰트들이 숨기기 되어 있다.

Arial조차도.

요즘 폰트들이 너무 많아서 사용자가 폰트 선택할 때 사용자가 볼 필요도 없는 너무 많은 리스트를 줄여주고자 하는 의도라 보면 된다.


그러나,

Window 7에서 (라고 하지만 Windows 7부터라고 해야 할듯)

폰트 숨기기/표시 API를 제공하지 않는다는 것이다. ㅠ

<In Windows 7, there are no APIs for directly querying which fonts are hidden, or for setting fonts to be hidden. >


대신 ChooseFont API를 사용하라고 하나,

이것은 메모장의 폰트 선택 다이얼로그와 같은 '폰트 다이얼로그'를 사용할 수 있는 API이다.

(내가 원하는건 이런게 아니지만..)

새로운 리본 UI도 제공한다고 한다.


Note that

폰트 숨기기는 폰트를 선택하는 UI에만 안보일뿐 'EnumFontFamiliesEx' API로 폰트를 찾으면 숨긴 폰트까지 열거된다.


자세한건 아래 링크를 참조.



<참조>

1. https://msdn.microsoft.com/en-us/library/windows/desktop/dd317704%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396