トップページ > 過去ログ > 記事閲覧
CreateFontToHandleのサイズ等の決定が反影さ
名前:キリ 日時: 2012/04/16 10:40

int g_middlefont = CreateFontToHandle( "Menu", 20, 20, DX_FONTTYPE_ANTIALIASING); int g_bigfont = CreateFontToHandle( "Menu", 100, 50, DX_FONTTYPE_ANTIALIASING); DrawStringToHandle(30, 100, "NEWGAME", 0xFFFFFF, g_middlefont); DrawFormatStringToHandle(30, 100, 0xFFFFFF, "NEWGAME", g_middlefont); フォントの表示機能が今一よく分かりません。 CreateFontToHandle( フォントの中身, フォントサイズ, フォントの太さ, フォントのタイプ); でいいのでしょうか? 上記のように決定してもサイズが全く反影されず、フォントのタイプの決定もなんだか有効なのか向こうなのか分かりません。 DX_FONTTYPE_NORMAL と入力してもアンチエイリアスのままだし、 CreateFontToHandleの初期設定が反影されているとは思えません。 フォントのインポートとか何か忘れている事等があるのでしょうか? よろしくお願いします。

Page: 1 |

Re: CreateFontToHandleのサイズ等の決定が反影さ ( No.1 )
名前:Will 日時:2012/04/16 17:27

リファレンスに第一引数を使用した例がないので間違いやすいのですが、 CreateFontToHandleの第一引数はフォントの名前です。 例:MSゴシックやArialとか 作成したフォントデータに付ける名前ではありません。 注意点としてフォント名は正確に指定してください。 文字の全角/半角が間違っていたりすると正しく動作しません。
Re: CreateFontToHandleのサイズ等の決定が反影さ ( No.2 )
名前:キリ 日時:2012/04/16 20:17

指摘されていた第一引数に対する認識が間違っていました。 ありがとうございます。 指摘された部分を直した所、 int g_bigfont = CreateFontToHandle( "メイリオ", 5, 5, DX_FONTTYPE_ANTIALIASING); int g_bigfont = CreateFontToHandle( "メイリオ", 100, 50, DX_FONTTYPE_ANTIALIASING); にしてみましたが、何故かサイズが反影されません。 常にサイズが一定で、 アンチエイリアスが何故かされたりされなかったりします。 コレは機種依存なのでしょうかバグなのでしょうか? 加えるのはDxLib.hのみでいいのでしょうか?
Re: CreateFontToHandleのサイズ等の決定が反影さ ( No.3 )
名前:Will 日時:2012/04/17 09:52

フォントによっては指定されたサイズに対応していない場合があります。 極端に小さかったり、大きかったりする場合に対応していないことが多いです。 メイリオがどのサイズに対応しているかは知らないですが、一般的には8〜80ぐらいのように思います。 大きい(小さい)文字で表示したい場合、DrawExtendStringToHandleやDrawExtendFormatStringToHandleで拡大/縮小 表示するほうが良いと思います。 メイリオフォントはMSゴシック等のフォントとアンチエイリアスの方式が異なるため 現状では正常に動作しない場合があります。
Re: CreateFontToHandleのサイズ等の決定が反影さ ( No.4 )
名前:管理人 日時:2012/04/22 09:42

とりあえず手元の環境で #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // ウインドウモードで起動 ChangeWindowMode( TRUE ); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; int g_minfont = CreateFontToHandle( "メイリオ", 5, 5, DX_FONTTYPE_ANTIALIASING); int g_bigfont = CreateFontToHandle( "メイリオ", 100, 50, DX_FONTTYPE_ANTIALIASING); DrawStringToHandle( 0, 0, "あいうえお", GetColor( 255,255,255 ), g_minfont ) ; DrawStringToHandle( 0, 16, "あいうえお", GetColor( 255,255,255 ), g_bigfont ) ; WaitKey(); // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; } 以上のようなサンプルプログラムを組んで実行してみたのですが、 普通に小さな文字と巨大な文字が表示されました よろしければキリさんの環境ではどのように表示されるかお試しになってみていただけないでしょうか? もし上記サンプルでも同様にサイズが一定になってしまうということでしたら、 最新バージョンでは直っている可能性がありますので、その際はこちらの最新バージョンを お試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)

Page: 1 |