トップページ > 記事閲覧
CheckFontName関数について。
名前:うずら 日時: 2014/07/13 19:19

以下のコードで、CheckFontName関数がFalseを返すのに、フォントの追加に成功します。 フォントはリソースから追加していますが、それが原因ですか? void Image::SetFont(const char *pFontName, unsigned int pID, int pFontSize, int pFontThick, int pFontEdge) { char str[256]; if (pID < 0) { AppLogAdd("UserMes: Image::SetFont Illegal Index Number\n"); sprintf_s(str, "フォントの作成に失敗。インデックス番号が不正です。 ID:%d", pID); MessageBox(NULL, str, ("エラー"), MB_OK | MB_ICONERROR); return; } while ( FontID.size() <= pID ) { FontID.push_back(-1); } if (!CheckFontName(pFontName)) { AppLogAdd("UserMes: Image::SetFont Cannot Find Font.\n"); // ここが実行される。 } if (pFontEdge) { FontID[pID] = CreateFontToHandle(pFontName, pFontSize, pFontThick, DX_FONTTYPE_ANTIALIASING_EDGE_8X8, DX_CHARSET_DEFAULT, pFontEdge); } else { FontID[pID] = CreateFontToHandle(pFontName, pFontSize, pFontThick, DX_FONTTYPE_ANTIALIASING_8X8, DX_CHARSET_DEFAULT, pFontEdge); } if (FontID[pID] == -1) { AppLogAdd("UserMes: Image::SetFont Font Create Error.\n"); MessageBox(NULL, "フォントの作成に失敗。", ("エラー"), MB_OK | MB_ICONERROR); return; } }
メンテ

Page: 1 |

Re: CheckFontName関数について。 ( No.1 )
名前:管理人 日時:2014/07/14 00:24

リソースから追加していることは原因とは関係ありません CreateFontToHandle は指定のフォントでのフォントハンドルの作成ができなかった場合は、 MSゴシックなどのOS標準のフォントを使用したフォントハンドルが作成されるように なっていますので、CreateFontToHandle がエラーを返さなかったとしても、希望のフォントでの フォントハンドルの作成が成功しているとは限りません なので CreateFontToHandle が成功しても CheckFontName が FALSE を返す場合は 希望のフォントのフォントハンドルが作成できなかった可能性が高いです
メンテ
Re: CheckFontName関数について。 ( No.2 )
名前:うずら 日時:2014/07/14 20:49

すいません、こっちのミスでした。 CreateFontToHandle のときにDX_CHARSET_DEFAULTを指定していたのに、 CheckFontName のときにそれを指定してなかったのが原因でした。 指定したら出なくなりました。
メンテ

Page: 1 |

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

   クッキー保存