Ryo さんが書きました:そもそもフォントがインストールされてない環境ってことはありませんか?
しっかりインストールされているのを確認したので、そのような事は無いと思います。
Ryo さんが書きました:なるほど、勘違い失礼いたしました
いえ、こちらの方が失礼させて頂いている身です^^;
h2so5 さんが書きました:青虫8826 さんが書きました:
「Palatino Linotype」というフォントを使いたいのですが、
件名の通り、何故か使用が出来ません。
それ以外にも、全角の含まれていないフォント名のものも使用が出来ませんでした
(全てのフォントを検証をしてないのでそうとは断定出来ませんが...)。
フォント名に全角文字が含まれているフォントは使用できるということですか?
青虫8826 さんが書きました:
プログラムの開示は、フォントの呼び出し方をどのようにしても出来ない為無意味だと思うので、
勝手ながらに省略させて頂きました。
どのようにしたのかが重要ですので、コードを貼ってください。
トピックを立てた後に色々試していたら、どうやら半角のみのフォント名が使えないみたいです。
急ぎ過ぎた事を言い、更に勝手な省略と分かり難い説明、更に更に遅い返信になってしまい大変申し訳ないですorz
とりあえず、これまでの経由を説明させて頂きます(その経由の中でも可笑しい所があればご指摘の方お願いします)。
先ず、サンプルプロブラミングの館に御座います「RPGのサンプル」の方を参考にさせて頂きました。
そのプログラムを見て、一つのヘッダファイル(GV.h)に必要な変数を宣言して、
そこに一つの関数(load.cppのdat_load())から必要なデータを一挙に格納すると言う構造を教わりました。
そこで、このプログラムに自分の好きなように継ぎ足す形で一つ一つの関数の役割などを把握して行こうと思い作業を始めました。
ところが、GV.hに新たにフォント用の変数(フォントハンドル)を宣言して、
dat_load()からCreateFontToHandle関数を使って「Palatino Linotype」のフォントデータを格納したのですが、
DrawStringToHandle関数から呼び出してもDrawFormatStringToHandle関数から呼び出してもフォントだけがデフォルトのままでした
(ここでかなり試行錯誤を重ねた為、単に呼び出し側の指定したフォントハンドルが誤っていたと言った凡ミスは無いと思っています)。
「今のプログラムの構造に問題があるのかも知れない」と思い、新たにプロジェクトを作って下記のようなプログラムにしてみました
(vista標準フォント以外のフォントもありますが、フォントがインストールされているのをしっかり確認しました)。
コード:
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );
int FH[10] = {
CreateFontToHandle( NULL, 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "Palatino Linotype", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "Rod", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "Courier", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "Arial", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "魚石行書", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "HG丸ゴシックM-PRO", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "AR勘亭流H", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "DF行書体", 18, 3, DX_FONTTYPE_NORMAL),
CreateFontToHandle( "MS 明朝", 18, 3, DX_FONTTYPE_NORMAL),
};
while( ProcessMessage()==0 && ClearDrawScreen()==0 ){
DrawFormatStringToHandle( 20, 50, GetColor(255, 255, 255), FH[0], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 70, GetColor(255, 255, 255), FH[1], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 90, GetColor(255, 255, 255), FH[2], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 110, GetColor(255, 255, 255), FH[3], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 130, GetColor(255, 255, 255), FH[4], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 150, GetColor(255, 255, 255), FH[5], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 170, GetColor(255, 255, 255), FH[6], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 190, GetColor(255, 255, 255), FH[7], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 210, GetColor(255, 255, 255), FH[8], "あいうえお ABCDE abcde 12345");
DrawFormatStringToHandle( 20, 230, GetColor(255, 255, 255), FH[9], "あいうえお ABCDE abcde 12345");
ScreenFlip();
}
}
これで実行してみましたが
http://uploda.cc/img/img5115dc44619d2.png ←上記のプログラムを実行した画像です。
このように、私が使いたいと思っている「Palatino Linotype」だけで無く、半角のみのフォント名のもの全てがデフォルトのままでした。
これは幾らやっても出来そうに無いと思ったので、この掲示板を使わせて頂きました。
h2so5 さんが書きました:フォントファイルの形式によって読み込めない場合があるかもしれません。
上記のプログラムで使っているフォントはある程度ファイル形式をバラしているので、やはり原因は半角の場合なのでは...
長文失礼しました。