RemoveFontResourceExA 函数 (wingdi.h)

RemoveFontResourceEx 函数从系统字体表中删除指定文件中的字体。

语法

BOOL RemoveFontResourceExA(
  [in] LPCSTR name,
  [in] DWORD  fl,
  [in] PVOID  pdv
);

参数

[in] name

指向命名字体资源文件的以 null 结尾的字符串的指针。

[in] fl

要从系统中删除的字体的特征。 若要删除字体,使用的标志必须与使用 AddFontResourceEx 函数添加字体时相同。 有关详细信息,请参阅 AddFontResourceEx 函数。

[in] pdv

保留。 必须为零。

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 没有可用的扩展错误信息。

言论

仅当指定的标志与使用 AddFontResourceEx 函数添加字体时相同时,此函数才会删除字体。

尝试将包含字体的现有字体文件替换为对字体的未完成引用时,可能会收到一个错误,指示无法删除原始字体,因为即使在调用 removeFontResourceEx之后,该字体也正在使用中。 如果你的应用要求替换字体文件,若要将原始字体的资源计数减少到零,请在循环中调用 RemoveFontResourceEx,如此示例代码所示。 如果继续收到错误,则表明字体文件在其他会话中仍加载。 请确保字体未在字体注册表中列出,并重启系统,以确保从所有会话中卸载字体。

注意 使用原始字体文件的应用仍可访问原始文件,并且不会在重新加载字体之前使用新字体。 调用 AddFontResourceEx 以重新加载字体。 建议调用 AddFontResourceEx 调用 RemoveFontResourceEx 的次数相同,如此示例代码所示。
 

int i = 0;
while( RemoveFontResourceEx( FontFile, FR_PRIVATE, 0 ) )
{
    i++;
}

// TODO: Replace font file

while( i-- )
{
    AddFontResourceEx( FontFile, FR_PRIVATE, 0 );
}

注意

wingdi.h 标头将 RemoveFontResourceEx 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wingdi.h (包括 Windows.h)
Gdi32.lib
DLL Gdi32.dll

另请参阅

AddFontResourceEx

字体和文本功能

字体和文本概述

SendMessage