我正在编写一个日语测验程序,我不想要求人们安装适用于 Windows XP 的东亚语言包。我正在使用 GDI+ 来绘制文本。我尝试下载免费的 Unicode 字体并使用它来绘制文本。我在我的电脑上测试了它(安装了东亚包),它使用下载的字体正确显示了日文字符,但在另一台没有语言包的电脑上它不起作用。
我正在寻找有关如何完成这项工作的建议。该程序非常简单,仅使用 Win32 API、GDI+ 和 STL 用 C++ 编写。如果可能的话,我想只使用这些库。我确实有 UNICODE #defined。
我基本上用于绘制文本的代码粘贴在下面:
#include <gdiplus.h>
using namespace Gdiplus ;
Graphics * gi ;
PrivateFontCollection _fonts ;
_fonts.AddFontFile(fontFilename) ;
Font * currentFont = new Font(fontName, fontSize, FontStyleRegular, UnitPoint, &_fonts) ;
std::wstring text = L"Some text" ;
gi->DrawString(text.c_str(), (INT)text.size(), currentFont, rectangle, &format, &brush) ;