共用方式為


RemoveFontResourceA 函式 (wingdi.h)

RemoveFontResource 函式會從系統字型數據表中移除指定檔案中的字型。

如果使用 addFontResourceEx 函式 新增字型,您必須使用 removeFontResourceEx 函式

語法

BOOL RemoveFontResourceA(
  [in] LPCSTR lpFileName
);

參數

[in] lpFileName

名稱為字型資源檔之 Null 終止字串的指標。

傳回值

如果函式成功,則傳回值為非零值。

如果函式失敗,傳回值為零。

言論

如果應用程式從系統字型數據表新增或移除字型,它會將 WM_FONTCHANGE 訊息傳送至系統中所有最上層視窗,以通知其他窗口變更。 應用程式會呼叫 SendMessage 函式,並將 hwnd 參數設定為 HWND_BROADCAST,以傳送此訊息。

如果字型有未處理的參考,則相關聯的資源會維持載入狀態,直到沒有使用任何裝置內容為止。 此外,如果字型列在字型登錄中(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts),並且安裝到 %windir%\fonts\ 資料夾以外的任何位置,它可能會載入到其他使用中會話(包括會話 0)。

當您嘗試以未處理的參照取代包含字型的現有字型檔案時,您可能會收到錯誤,指出原始字型無法刪除,因為即使在您呼叫 removeFontResource 之後,它仍使用中。 如果您的 app 需要取代字型檔案,若要將原始字型的資源計數減少為零,請在迴圈中呼叫 RemoveFontResource,如此範例程式代碼所示。 如果您繼續收到錯誤,這表示字型檔案仍會保留在其他會話中。 請確定字型未列在字型登錄中,並重新啟動系統,以確保從所有會話卸除字型。

注意 使用中原始字型檔案的應用程式仍然可以存取源檔,而且在重載字型之前,不會使用新的字型。 呼叫 AddFontResource 重載字型。 我們建議您呼叫 AddFontResource 呼叫與 呼叫 removeFontResource 相同次數,如此範例程式代碼所示。
 

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

// TODO: Replace font file

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

注意

wingdi.h 標頭會將 RemoveFontResource 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wingdi.h (包括 Windows.h)
連結庫 Gdi32.lib
DLL Gdi32.dll

另請參閱

AddFontResource

字型和文字函式

字型和文字概觀

RemoveFontResourceEx

SendMessage