다음을 통해 공유


글꼴 설치 및 삭제

애플리케이션은 해당 글꼴이 지정된 디바이스에 상주하거나 시스템 글꼴 테이블에 설치된 경우에만 글꼴을 사용하여 텍스트를 그릴 수 있습니다. 글꼴 테이블은 애플리케이션에서 사용할 수 있는 모든 비디바이스 글꼴을 식별하는 내부 배열입니다. 애플리케이션은 EnumFontFamilies 또는 ChooseFont 함수를 호출하여 디바이스에 현재 설치되어 있거나 내부 글꼴 테이블에 저장된 글꼴의 이름을 검색할 수 있습니다.

글꼴을 일시적으로 설치하려면 AddFontResource 또는 AddFontResourceEx를 호출합니다. 이러한 함수는 font-resource 파일에 저장된 글꼴을 로드합니다. 그러나 다시 부팅한 후에는 글꼴이 존재하지 않으므로 임시 설치입니다.

시스템을 다시 부팅한 후에도 유지되는 글꼴을 설치하려면 다음 방법 중 하나를 사용합니다.

  • 제어판 이동하여 글꼴 아이콘을 클릭하고 파일 메뉴에서 새 글꼴 설치를 선택합니다. 다시 부팅하기 전에 애플리케이션에서 글꼴을 사용할 수 있습니다. 그러나 터미널 서버 상황에서 글꼴은 현재 세션에 사용할 수 있지만 다시 부팅 후까지 다른 세션에서는 사용할 수 없습니다.
  • %windir%\fonts 폴더에 글꼴을 복사합니다. 그런 다음, 제어판 이동하여 글꼴 아이콘을 클릭하거나 AddFontResource 또는 AddFontResourceEx를 호출합니다. 다시 부팅하기 전에 애플리케이션에서 글꼴을 사용할 수 있습니다. 그러나 터미널 서버 상황에서 글꼴은 현재 세션에 사용할 수 있지만 다시 부팅 후까지 다른 세션에서는 사용할 수 없습니다. %windir%\fonts 폴더에만 글꼴을 복사하는 경우 시스템이 다시 부팅된 후에만 글꼴을 사용할 수 있습니다.

애플리케이션이 설치된 글꼴 사용을 마치면 RemoveFontResource 함수를 호출하여 해당 글꼴을 제거해야 합니다.

%windir%\fonts 폴더 이외의 위치에서 설치된 글꼴은 세션 0을 비롯한 활성 세션에서 로드할 때 수정할 수 없습니다. 따라서 변경, 바꾸기 또는 삭제를 시도하면 차단됩니다. 글꼴을 수정해야 하는 경우:

  • 임시 글꼴은 현재 세션에서만 로드됩니다. 글꼴 수정을 시도하기 전에 RemoveFontResource 를 호출하여 현재 세션에서 글꼴을 강제로 언로드합니다.
  • 영구 글꼴은 다시 부팅한 후에도 계속 설치되며 생성된 모든 세션에서 로드됩니다. RemoveFontResource를 호출하여 현재 세션에서 글꼴을 강제로 언로드합니다. 그런 다음 글꼴 레지스트리 키(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts)에서 글꼴과 연결된 레지스트리 값을 찾아 제거합니다. 마지막으로 컴퓨터를 다시 부팅하여 글꼴이 세션에 로드되지 않도록 합니다. 다시 부팅한 후 글꼴 수정/삭제를 진행합니다.

애플리케이션이 글꼴 리소스를 추가하고 삭제하는 함수를 호출할 때마다 SendMessage 함수를 호출하고 시스템의 모든 최상위 창에 WM_FONTCHANGE 메시지를 보내야 합니다. 이 메시지는 글꼴을 추가하거나 제거한 애플리케이션에 의해 내부 글꼴 테이블이 변경되었음을 다른 애플리케이션에 알 수 있습니다.