글꼴 설치 및 삭제
애플리케이션은 해당 글꼴이 지정된 디바이스에 상주하거나 시스템 글꼴 테이블에 설치된 경우에만 글꼴을 사용하여 텍스트를 그릴 수 있습니다. 글꼴 테이블은 애플리케이션에서 사용할 수 있는 모든 비휘체 글꼴을 식별하는 내부 배열입니다. 애플리케이션은 EnumFontFamilies 호출하거나 ChooseFont함수를디바이스에 현재 설치되거나 내부 글꼴 테이블에 저장된 글꼴의 이름을 검색할 수 있습니다.
글꼴을 일시적으로 설치하려면 AddFontResource 호출하거나 AddFontResourceEx. 이러한 함수는 글꼴 리소스 파일에 저장된 글꼴을 로드합니다. 그러나 다시 부팅한 후에는 글꼴이 존재하지 않으므로 임시 설치입니다.
시스템을 다시 부팅한 후에도 유지되는 글꼴을 설치하려면 다음 방법 중 하나를 사용합니다.
- 제어판으로 이동하여 글꼴 아이콘을 클릭하고 파일 메뉴에서 새 글꼴 설치 선택합니다. 다시 부팅하기 전에 응용 프로그램에서도 글꼴을 사용할 수 있습니다. 그러나 터미널 서버 상황에서는 현재 세션에 글꼴을 사용할 수 있지만 다시 부팅할 때까지 다른 세션에서는 사용할 수 없습니다.
- 글꼴을 %windir%\fonts 폴더에 복사합니다. 그런 다음 제어판으로 이동하여 글꼴 아이콘을 클릭하거나 AddFontResource호출하거나 AddFontResourceEx. 다시 부팅하기 전에 응용 프로그램에서도 글꼴을 사용할 수 있습니다. 그러나 터미널 서버 상황에서는 현재 세션에 글꼴을 사용할 수 있지만 다시 부팅할 때까지 다른 세션에서는 사용할 수 없습니다. %windir%\fonts 폴더에만 글꼴을 복사하는 경우 시스템이 다시 부팅된 후에만 글꼴을 사용할 수 있습니다.
애플리케이션이 설치된 글꼴 사용을 마치면 RemoveFontResource 함수를 호출하여 해당 글꼴을 제거해야 합니다.
%windir%\fonts 폴더 이외의 위치에서 설치된 글꼴은 세션 0을 비롯한 활성 세션에서 로드할 때 수정할 수 없습니다. 따라서 변경, 바꾸기 또는 삭제를 시도하면 차단됩니다. 글꼴을 수정해야 하는 경우:
- 임시 글꼴은 현재 세션에서만 로드될 있습니다. 글꼴 수정을 시도하기 전에 RemoveFontResource 호출하여 현재 세션에서 글꼴을 강제로 언로드합니다.
- 영구 글꼴 다시 부팅한 후에도 설치되며 생성된 모든 세션에서 로드됩니다. RemoveFontResource 호출하여 현재 세션에서 글꼴을 강제로 언로드합니다. 그런 다음 글꼴 레지스트리 키(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts)에서 글꼴과 연결된 레지스트리 값을 찾아 제거합니다. 마지막으로 컴퓨터를 다시 부팅하여 글꼴이 세션에 로드되지 않도록 합니다. 다시 부팅한 후 글꼴 수정/삭제를 계속 진행합니다.
애플리케이션에서 글꼴 리소스를 추가하고 삭제하는 함수를 호출할 때마다 SendMessage 함수를 호출하고 시스템의 모든 최상위 창에 WM_FONTCHANGE 메시지를 보내야 합니다. 이 메시지는 글꼴을 추가하거나 제거한 애플리케이션에 의해 내부 글꼴 테이블이 변경되었음을 다른 응용 프로그램에 알깁니다.