Freigeben über


RemoveFontResourceW-Funktion (wingdi.h)

Die funktion RemoveFontResource entfernt die Schriftarten in der angegebenen Datei aus der Systemschriftarttabelle.

Wenn die Schriftart mithilfe der funktion AddFontResourceEx hinzugefügt wurde, müssen Sie die funktion RemoveFontResourceEx verwenden.

Syntax

BOOL RemoveFontResourceW(
  [in] LPCWSTR lpFileName
);

Parameter

[in] lpFileName

Ein Zeiger auf eine mit Null beendete Zeichenfolge, die eine Schriftartressourcendatei benennt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlschlägt, ist der Rückgabewert null.

Bemerkungen

Wenn eine App Schriftarten aus der Systemschriftarttabelle hinzufügt oder entfernt, wird empfohlen, andere Fenster der Änderung zu benachrichtigen, indem eine WM_FONTCHANGE Nachricht an alle Fenster der obersten Ebene im System gesendet wird. Die App sendet diese Nachricht, indem die SendMessage--Funktion aufgerufen wird, wobei der hwnd-Parameter auf HWND_BROADCAST festgelegt ist.

Wenn es ausstehende Verweise auf eine Schriftart gibt, bleibt die zugeordnete Ressource geladen, bis kein Gerätekontext verwendet wird. Wenn die Schriftart in der Schriftartregistrierung (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) aufgeführt ist und an einem anderen Speicherort als dem Ordner %windir%\fonts\ installiert ist, kann sie in andere aktive Sitzungen (einschließlich Sitzung 0) geladen werden.

Wenn Sie versuchen, eine vorhandene Schriftartdatei zu ersetzen, die eine Schriftart mit ausstehenden Verweisen enthält, wird möglicherweise ein Fehler angezeigt, der angibt, dass die ursprüngliche Schriftart nicht gelöscht werden kann, da sie auch nach dem Aufruf RemoveFontResourceverwendet wird. Wenn ihre App erfordert, dass die Schriftartdatei ersetzt wird, rufen Sie RemoveFontResource- in einer Schleife auf null auf, um die Ressourcenanzahl der ursprünglichen Schriftart auf Null zu reduzieren. Wenn Sie weiterhin Fehler erhalten, ist dies ein Hinweis darauf, dass die Schriftartdatei in anderen Sitzungen geladen bleibt. Stellen Sie sicher, dass die Schriftart nicht in der Schriftartregistrierung aufgeführt ist, und starten Sie das System neu, um sicherzustellen, dass die Schriftart von allen Sitzungen entladen wird.

Hinweis Apps, in denen die ursprüngliche Schriftartdatei verwendet wird, weiterhin auf die originale Datei zugreifen und die neue Schriftart erst dann verwenden, wenn die Schriftart neu geladen wird. Rufen Sie AddFontResource- auf, um die Schriftart neu zu laden. Es wird empfohlen, AddFontResource aufzurufen, dieselbe Häufigkeit wie der Aufruf von RemoveFontResource erfolgreich war, wie in diesem Beispielcode gezeigt.
 

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

// TODO: Replace font file

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

Anmerkung

The wingdi.h header defines RemoveFontResource as an alias that automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- wingdi.h (enthalten Windows.h)
Library Gdi32.lib
DLL- Gdi32.dll

Siehe auch

AddFontResource-

Schriftart- und Textfunktionen

Schriftarten und Textübersicht

RemoveFontResourceEx-

SendMessage-