字体必须已经驻留在给定的设备上或安装在Windows字体表中,以便应用程序使用该字体的字形来绘制文本。Windows字体表是一个内部数组,用于标识可用于基于Windows的应用程序的所有非设备字体。应用程序可以通过调用EnumFontFamilies或ChooseFont功能来检索当前安装在设备上并存储在内部字体表中的字体的名称。
应用程序可以通过调用font-installation函数AddFontResource来安装字体。AddFontResource函数加载存储在字体资源文件中的字体。
在TrueType字体的情况下,在字体可以安装在字体表中之前,有时需要额外的步骤。一些字体制造商只运送TrueType字体数据文件(由.TTF扩展名标识)。在Windows可以加载这些字体之前,它需要一个相应的头文件(由.FOT扩展名标识)。要创建此头文件,应用程序必须调用CreateScalableFontResource函数,并将字体数据文件的名称作为第三个参数传递。创建此头文件时,应用程序可以通过调用AddFontResource函数并传递新头文件的名称来安装该字体。
当应用程序完成使用已安装的字体时,它必须通过调用RemoveFontResource功能来删除该字体。
每当应用程序调用添加和删除字体资源的功能时,它也应该调用SendMessage函数并向系统中的所有顶级窗口发送WM_FONTCHANGE消息。此消息通知其他应用程序已添加或删除字体的应用程序更改了内部字体表。