c++ - gdi+ PrivateFontCollection AddFontFile 始终返回状态为 "InvalidParameter"

标签 c++ fonts gdi+ win32gui typeface

每个人,我都在使用 GDI+ 以我自己的字体呈现文本,但在使用成员函数 AddFontFile(WCHAR*) 时,我总是得到错误状态 InvalidParameter PrivateFontCollection 加载我的字体文件,这是我的代码:

PrivateFontCollection m_font_collection;
... // initialize window
GdiplusStartup(&gdi_token, &gdi_startup_input, NULL);
// here the result always is 2 (that specified as "InvalidParameter")
Status result = m_font_collection.AddFontFile(L"myfont.ttf");

我找不到任何解释为什么会出现此错误,有谁知道如何解决该问题?谢谢! ps:原谅我糟糕的英语... :)


我已经解决了这个问题,这是一个愚蠢的问题,所以,请原谅我...请检查下面的答案
My answer

最佳答案

OK,我已经解决了这个问题...我是多么愚蠢...这个问题很愚蠢,我定义的m_font_collection太早了!它应该在函数 GdiplusStartup 被调用后定义,只有在 GDI+ 初始化后 PrivateFontCollection 才能加载您自己的字体文件...希望可以帮助别人

关于c++ - gdi+ PrivateFontCollection AddFontFile 始终返回状态为 "InvalidParameter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30025476/

相关文章:

c++ - 在 Windows 7 上使用 CMake 安装 OpenCV 3.1.0,opencv_ffmpeg.dll 无效哈希

c++ - 使用 chilkat 的电子邮件主题中的额外空格

c++ - 从 C++ 中的大小计算字体高度?

html - CSS 自定义字体

c# - 透明图形缓冲区清除?

c++ - std:::erase 中的 out_of_range 异常

c++ - 这个短程序是合法的 C++ 吗?

ios - 设置自定义按钮字体而不被 Storyboard 中设置的值覆盖

c# - 无法使用 TextRenderer 获得正确的 DrawnText 大小

c++ - GDI+ 是否有标准图像编码器 CLSID?