トップページ > 過去ログ > 記事閲覧
ChangeFontにおける欧文フォントの指定について
名前:SmokingWOLF 日時: 2007/10/31 20:14

DXライブラリにいつもお世話になっております、SmokingWOLFと申します。 以下の点について質問があります。 ・雑談&質問掲示板の9/22にも同じような内容の書き込みを見つけたのですが、  ChangeFontやCreateFontToHandle関数において、  「Arial」などの欧文フォントを指定しようとしても、  どうやら無効になってしまうようです。  DXライブラリVer2.23では欧文フォントの使用はできないのでしょうか?  また現バージョンで使用できない場合、今後改善予定はございますか?

Page: 1 |

Re: ChangeFontにおける欧文フォントの指定について ( No.1 )
名前:管理人 日時:2007/11/02 02:49

SmokingWOLF さん始めまして、DXライブラリの管理人です。 DXライブラリはデフォルトでは日本語文字セットを使用しようとしますので、 日本語文字セットが存在しない Arial 等を使用する場合はリファレンスには 載っていない引数でデフォルトの文字セットを使用するように指定する必要が あります。 // 新しいフォントデータを作成 int CreateFontToHandle( const char *FontName, int Size, int Thick, int FontType, int CharSet ); // フォントを変更 int ChangeFont( const char *FontName, int CharSet ); 上記二つの関数に、リファレンスには載っていない CharSet という引数がありますが、 明示的に引数を記述しない普通の使い方では -1 を渡したこととなり、内部で DX_CHARSET_SHFTJIS に変換されています。この場合は日本語文字セットが存在しない フォントの場合は正常にフォントデータを作成出来ませんので、明示的に DX_CHARSET_DEFAULT を渡すことでデフォルト文字セットを使用するようにします。 // デフォルト文字セット指定で Arial Black を32ポイントのサイズ、デフォルトの太さ、アンチエイリアス付きで作成する場合 handle = CreateFontToHandle( "Arial Black", 32, -1, DX_FONTTYPE_ANTIALIASING, DX_CHARSET_DEFAULT ); // デフォルト文字セット指定で Arial を使用する場合 ChangeFont( "Arial", DX_CHARSET_DEFAULT ); 宜しければお試しください。
Re: ChangeFontにおける欧文フォントの指定につい ( No.2 )
名前:SmokingWOLF 日時:2007/11/02 19:56

詳細なご説明、誠にありがとうございます。 早速試してみたところ、おかげで欧文フォントの利用が可能になりました。

Page: 1 |