我从www.google.com/fonts下载了字体SourceSansPro-Regular.ttf,我想将它用作使用TextOut()函数时屏幕上显示的字体。要将字体安装到用户的计算机上,我执行了以下操作:
AddFontResource(FilePaths::getPathToSourceSansPro_Regular().c_str());
...这导致了成功代码,这意味着它已成功安装。完善。接下来,我创建了使用CreateFont()函数并将生成的HFONT保存到mhFont:
mhFont = CreateFont(VALUE, NULL, NULL, NULL, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS,
CLIP_DEFAULT_PRECIS, NONANTIALIASED_QUALITY, DEFAULT_PITCH | FF_SWISS, "SourceSansPro-Regular");
正如您所看到的,我使用了.ttf字体文件的确切名称作为函数中的最后一个参数,它将字符串作为要使用的字体的名称。
当我在屏幕上绘制一些文本时,它不会以此自定义字体绘制,而是以默认字体绘制。我可以告诉你,因为数字1的绘制就像你在屏幕上看到的那样,但是在SourceSansPro-Regular中,数字1没有弯曲的顶部,并且还有一条位于顶部的水平线。
正在使用正确的设备上下文绘制文本,HFONT正确返回等等。我不确定为什么自定义字体不会显示。我传入CreateFont()函数的参数可能有些东西吗?