【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

win32アプリケーションを作成しています。
フォントを、WINDOWS\Fontsからではなく、そのアプリケーションがあるディレクトリから読み込む必要が出てきたので、
hFont = CreateFont(iHeight,0,0,0,FW_DONTCARE, FALSE, FALSE, FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,"MS ゴシック");
を最後の引数だけ変更して、
hFont = CreateFont(iHeight,0,0,0,FW_DONTCARE, FALSE, FALSE, FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,"./hoge.ttf");
のようにしたのですが、読み込めていないようです。
MSDNを見ると、最後の引数はフォント名だとなっているので
hFont = CreateFont(iHeight,0,0,0,FW_DONTCARE, FALSE, FALSE, FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,"hoge");
としましたが、やはりうまく行きません。
どのようにすれば、カレントディレクトリのフォントを使用できるのか、わかる方、ご教授お願いします。
環境はvc 2005, XPです。

A 回答 (1件)

CreateFontなどで直接フォントファイルを指定するのは無理だと思います


CreateFontの最後の引数は FontFaceなので『MS 明朝』『MS ゴシック』などのフォント名になります
フォント選択ダイアログに表示される名前です … ファイル名ではありません
簡単にやるなら AddFontResouceなどでそのフォントをWindowsに登録してからCreateFontなどを使うようにしましょう
アプリケーションの終了時に RemoveFontResourceを実行する必要があるのでしたら適当なタイミングで実行するようにしましょう
    • good
    • 0
この回答へのお礼

早くの返答ありがとうございます。
無事、フォントを読み込めました。
ありがとうございます。

お礼日時:2008/01/06 01:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報