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 [仅限桌面应用]
目标平台 Windows
标头 wingdi.h (包括 Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

另请参阅

AddFontResourceEx

字体和文本函数

字体和文本概述

SendMessage