フォントの入ってないPCではどうなる?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Eli's

フォントの入ってないPCではどうなる?

#1

投稿記事 by Eli's » 14年前

初めまして。何でも質問掲示板ということで、お言葉に甘えて質問させて頂きます。
フォントを指定して文字を表示する関数がありますが、珍しいフォントを用いてゲームを作成した場合
プレイヤーのPCにそのフォントがなければ表示不良になるのでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: フォントの入ってないPCではどうなる?

#2

投稿記事 by h2so5 » 14年前

フォントがインストールされていない場合は、
デフォルトのフォントが使用されると思います。

フォントファイルを同梱してAddFontResourceEx関数を使えば
インストール無しでそのフォントを表示することはできますが、
ライセンスには十分注意してください。

Eli's

Re: フォントの入ってないPCではどうなる?

#3

投稿記事 by Eli's » 14年前

ご回答の速さと、解決策までご教授頂けたことに感動いたしました。
ほんとに有難うございます。

フォントのライセンス関係がシビアなのは、同人誌で学んだので大丈夫です(笑)

Eli's

Re: フォントの入ってないPCではどうなる?

#4

投稿記事 by Eli's » 14年前

[解決ボタンを押すための投稿]

YuO
記事: 947
登録日時: 15年前
住所: 東京都世田谷区

Re: フォントの入ってないPCではどうなる?

#5

投稿記事 by YuO » 14年前

ちなみに,GDIにおけるSelectObject時のフォント選択は,最優先はlfFaceNameではなくlfCharSetです。
つまり,lfCharSetとして正しくない値を指定すると,lfFaceNameに正しいフォント名を指定したとしてもそのフォントは選択されません。

いい加減,Windows 3.1時代の記事へのリファレンスは正しいのか疑問ではあるのですが,GDIのペナルティ情報は1992年の記事である,
Windows Font Mappingが最新のようなので,リファレンスとしてリンクをはっておきます。

この資料を見ると,他にもlfFaceNameよりもlfPitchAndFamilyでのFIXED_PITCHが優先されることもわかります。
つまり,lfPitchAndFamilyにFF_DONTCARE | FIXED_PITCHを指定した場合,lfFaceNameに"MS Pゴシック"を指定しても優先度で"MS ゴシック"に劣る,ということになります。


この機構によって,lfFaceNameに指定したフォントを持っていなくても,フォントが選ばれます。
細かく指定すればするほど,似通ったフォントが選ばれることになります。
# とはいえ,大きなくくりで似ている物しか指定できませんが。

なので,特殊なフォントであれば,できるだけ指定しておいた方がよいでしょう。
# フォント埋め込みが確実であるのは確かですが。

Eli's

Re: フォントの入ってないPCではどうなる?

#6

投稿記事 by Eli's » 14年前

ご教授頂いた手前恐縮ですが、今の私の実力では上記はよく理解できません。
実際にフォント表示がうまくいかない場面に直面した際に、
レベルアップする為の参考とさせていただきます。

閉鎖

“C言語何でも質問掲示板” へ戻る