RemoveFontResourceA 함수(wingdi.h)

RemoveFontResource 함수는 시스템 글꼴 테이블에서 지정된 파일의 글꼴을 제거합니다.

AddFontResourceEx 함수를 사용하여 글꼴을 추가한 경우 RemoveFontResourceEx 함수를 사용해야 합니다.

구문

BOOL RemoveFontResourceA(
  [in] LPCSTR lpFileName
);

매개 변수

[in] lpFileName

글꼴 리소스 파일의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다.

설명

앱이 시스템 글꼴 테이블에서 글꼴을 추가하거나 제거하는 경우 시스템의 모든 최상위 창에 WM_FONTCHANGE 메시지를 보내 변경 내용의 다른 창을 알리는 것이 좋습니다. 앱은 hwnd 매개 변수가 HWND_BROADCAST 설정된 SendMessage 함수를 호출하여 이 메시지를 보냅니다.

글꼴에 대한 미해결 참조가 있는 경우 디바이스 컨텍스트에서 사용할 때까지 연결된 리소스가 로드된 상태로 유지됩니다. 또한 글꼴 레지스트리(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts)에 글꼴이 나열되고 %windir%\fonts\ 폴더 이외의 위치에 설치된 경우 다른 활성 세션(세션 0 포함)에 로드될 수 있습니다.

글꼴이 포함된 기존 글꼴 파일을 미해결 참조로 바꾸려면 RemoveFontResource를 호출한 후에도 사용 중이므로 원래 글꼴을 삭제할 수 없다는 오류가 발생할 수 있습니다. 앱에서 글꼴 파일을 교체해야 하는 경우 원래 글꼴의 리소스 수를 0으로 줄이려면 이 예제 코드와 같이 루프에서 RemoveFontResource 를 호출합니다. 오류가 계속 발생하면 글꼴 파일이 다른 세션에서 로드된 상태로 유지됨을 나타냅니다. 글꼴 레지스트리에 글꼴이 나열되지 않았는지 확인하고 시스템을 다시 시작하여 모든 세션에서 글꼴이 언로드되었는지 확인합니다.

참고 원래 글꼴 파일이 사용 중인 앱은 원래 파일에 계속 액세스할 수 있으며 글꼴이 다시 로드될 때까지 새 글꼴을 사용하지 않습니다. AddFontResource를 호출하여 글꼴을 다시 로드합니다. 이 예제 코드와 같이 RemoveFontResource 호출이 성공한 것과 동일한 횟수만큼 AddFontResource 를 호출하는 것이 좋습니다.
 

int i = 0;
while( RemoveFontResource( FontFile ) )
{
    i++;
}

// TODO: Replace font file

while( i-- )
{
    AddFontResource( FontFile );
}

참고

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h(Windows.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

AddFontResource

글꼴 및 텍스트 함수

글꼴 및 텍스트 개요

RemoveFontResourceEx

SendMessage