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 之後仍使用中。 如果您的應用程式需要取代字型檔案,若要將原始字型的資源計數減少為零,請在迴圈中呼叫 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 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wingdi.h (包含 Windows.h) |
程式庫 | Gdi32.lib |
Dll | Gdi32.dll |