トップページ > 記事閲覧
最新版でGetDrawStringSizeToHandleが正常に動作しない
名前:へけぽん 日時: 2022/01/27 23:30

タイトル通りです GetDrawStringSizeToHandle()で正しい値が読み込めなくなってます 同じ文字列でGetDrawStringSize();を試してみましたがこちらは正常でした
メンテ

Page: 1 |

Re: 最新版でGetDrawStringSizeToHandleが正常に動作しない ( No.1 )
名前:管理人 日時:2022/01/28 02:26

手元で以下のような GetDrawStringSizeToHandle を使用して描画文字列の大きさの 矩形を描画するプログラムを試してみましたが、異常な値は返されず、綺麗に 描画文字列を囲う矩形が描画されました #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int FontHandle ; int SizeX, SizeY, LineCount ; const char *String = "ABCD\nEFGHI\nJKLMNOP" ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // フォントハンドルの作成 FontHandle = CreateFontToHandle( NULL, 24, 0, DX_FONTTYPE_NORMAL ) ; // 文字列の描画幅・高さ・行数を取得 GetDrawStringSizeToHandle( &SizeX, &SizeY, &LineCount, "ABCD\nEFGHI\nJKLMNOP", -1, FontHandle ) ; // 実際に文字列を描画 DrawStringToHandle( 0, 0, String, GetColor( 255,255,255 ), FontHandle ) ; // 文字列の描画幅・高さの矩形を描画 DrawBox( 0, 0, SizeX, SizeY, GetColor( 255,255,255 ), FALSE ) ; // 行数を描画 DrawFormatString( 0, 100, GetColor( 255,255,255 ), "Line Count : %d", LineCount ) ; // キー入力待ち WaitKey() ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } よろしければ上記のプログラムであればへけぽんさんの環境でも正常に動作するか試して頂けないでしょうか? m(_ _)m
メンテ
Re: 最新版でGetDrawStringSizeToHandleが正常に動作しない(解決) ( No.2 )
名前:へけぽん 日時:2022/01/28 07:19

試したところ上記のプログラムはきちんと動作しました 原因はどうやら自作のプログラム フォントハンドルを作る関数の扱いでミスがあるようです 早とちりして申し訳ありません
メンテ
Re: 最新版でGetDrawStringSizeToHandleが正常に動作しない ( No.3 )
名前:へけぽん(解決、原因判明) 日時:2022/01/28 09:43

原因が分かりましたので追記させてください 製作中のゲームの自作のデバッグ機能の問題でした デバッグモードを起動するときにSetGraphMode()で画面サイズを変更しているのですが SetGraphMode()の注意事項を失念していたことが原因でした(以下引用) <注意> この関数を実行するとロードしたすべてのグラフィックハンドルと3Dモデルハンドル、 作成したフォントハンドルは自動的に削除され、 SetDrawArea, SetDrawScreen, SetDrawMode, SetDrawBlendMode, SetDrawBright 等の 描画に関係する設定を行う関数による設定も全て初期状態に戻りますので、 画面モード変更後 LoadGraph関数や CreateFontToHandle関数等で再度ハンドルを作成し直し、 描画可能領域、描画対象画面等の各種描画系の設定も再度行う必要があります。 お手数おかけしました
メンテ

Page: 1 |

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

   クッキー保存