トップページ > 記事閲覧
フォント「Arial Black」を日本語で文字化け
名前:Dixq 日時: 2015/01/16 23:49

英語フォントを使用して表示時、日本語が混じっていると文字化けします。 例えば以下のようになります。 以前のバージョン少なくとも3.04dでは日本語が混じっていても正常に表示されていました。 英語フォントに日本語が混じっているとダメなのでしょうか? #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } int font = CreateFontToHandle( "Arial Black" , 20 , 1 , DX_FONTTYPE_ANTIALIASING_EDGE); DrawFormatStringToHandle(0,0,GetColor(255,255,255),font,"プログラム" ); WaitKey() ; // キーの入力待ち((7-3)『WaitKey』を使用) DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } 実行結果 h ttp://dixq.net/BBS/img/dx_bug.png
メンテ

Page: 1 |

Re: フォント「Arial Black」を日本語で文字化け ( No.1 )
名前:管理人 日時:2015/01/17 00:36

> 以前のバージョン少なくとも3.04dでは日本語が混じっていても正常に表示されていました。 多分それは英語フォントの作成に失敗してMSゴシックなどのデフォルトフォントで 作成されたので日本語が表示できているのだと思います Ver3.10f より前では英語フォントを使用する場合は CreateFontToHandle の第五引数で DX_CHARSET_DEFAULT を指定しないと英語フォントの作成に失敗して、MSゴシック等の デフォルトフォントでフォントハンドルが作成されてしまっていたのですが、 Ver3.10f で英語フォントが指定された場合は内部で自動的に DX_CHARSET_DEFAULT を 指定したことになり、指定のフォントを使用したフォントハンドルが作成されるようになりました 試しに CreateFontToHandle の第五引数に DX_CHARSET_SHFTJIS を指定してみてください、 Ver3.04d と同じ結果が得られると思います Arial Black 以外のフォントが作成されてしまっているかどうかは、描画する文字列を 「プログラム」ではなく「ABCDEFG」などの英語フォントが対応している文字列を指定して 第五引数に DX_CHARSET_SHFTJIS を指定した場合と指定しない場合の描画結果を比較してみると分かります > 英語フォントに日本語が混じっているとダメなのでしょうか? はい Ver3.04d でも第五引数に DX_CHARSET_DEFAULT を指定して英語フォントを作成した場合は 日本語文字は文字化けします
メンテ
Re: フォント「Arial Black」を日本語で文字化け ( No.2 )
名前:Dixq 日時:2015/01/20 21:09

ご回答ありがとうございます。 > CreateFontToHandle の第五引数に DX_CHARSET_SHFTJIS を指定してみてください、Ver3.04d と同じ結果が得られ 無事前と同様に表示されました。 ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存