トップページ > 記事閲覧
文字列の描画幅の違いについて
名前:nsawa 日時: 2016/08/14 11:22

こんにちは。文字列の描画幅の違いについて、気になった点がありました。 GetDrawStringWidth()とGetDrawStringSize()とで、取得した描画幅の値が違うようです。 GetDrawStringWidth()は最後の行の描画幅を返して、GetDrawStringSize()は一番長い行の幅を返すようでした。 両者の結果が違うのが意図的な仕様でしたら問題無いのですが、少し気になったので報告させて頂きました。 //テストプログラム #include <DxLib.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); DxLib_Init(); SetDrawScreen(DX_SCREEN_BACK); ClearDrawScreen(); const char* s = "いちぎょうめ\n二行目"; //描画サイズを求める文字列 DrawString(100, 50, s, GetColor(255, 255, 255)); int w1, w2; w1 = GetDrawStringWidth(s, strlen(s)); //描画サイズを求める@ GetDrawStringSize(&w2, NULL, NULL, s, strlen(s)); //描画サイズを求めるA printfDx("@=%d A=%d\n", w1, w2); //@とAの結果を表示する。 ScreenFlip(); WaitKey(); DxLib_End(); return 0; } //結果は「@=51 A=102」となりました。(Ver 3.16e 8/11版を使用しました)
メンテ

Page: 1 |

Re: 文字列の描画幅の違いについて ( No.1 )
名前:管理人 日時:2016/08/15 03:18

ご指摘ありがとうございます GetDrawStringWidth も GetDrawStringSize と同じように一番長い行の幅を返すように 修正したバージョンをアップしましたので、よろしければお使いください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: 文字列の描画幅の違いについて ( No.2 )
名前:nsawa(解決) 日時:2016/08/15 10:25

こんにちは。ダウンロードして使用させて頂きました。 GetDrawStringWidthも一番長い行の幅を返すようになった事を確認しました。 ご対応頂き、有難うございました。
メンテ

Page: 1 |

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

   クッキー保存