3

日本語のクイズ プログラムを書いていますが、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) ;
4

3 に答える 3

1

私は間違っていた。東アジア言語パックがインストールされていなくても、日本語の文字を含むフォントは Windows XP で正しく表示されます。

東アジア言語パックがインストールされていて、フォントが日本語の文字をサポートしていない場合、Windows は、フォントに最も近いと見なされる 2 つのフォントのいずれかから選択します。これは、自分のフォントとシステムフォントを切り替えると文字の描き方が変わってしまうので、使用しているフォントに日本語が含まれているのではないかと思いました。

Microsoft は、 Meiryo Collection Version 5.00と呼ばれる無料でインストールできる日本語フォントを提供しています。また、ここにはより多くの日本語フォントをリストしたページがあります。リストされているフォントの唯一の問題は、ライセンスが明確でないことです。

于 2009-03-15T01:40:45.423 に答える
0

問題を軽減するのに役立つ可能性がある Lucida Sans Unicode と呼ばれるフォントもあります。

于 2009-05-04T20:15:34.267 に答える