トップページ > 記事閲覧
縦表示のサブディスプレイでウィンドウ表示後にSetWindowSizeExtendRateすると期待通り動作しない
名前:SmokingWOLF 日時: 2026/02/19 11:14

DXライブラリにいつも大変お世話になっております。 自分の環境において、「縦」表示にしている「サブ(メインでない)ディスプレイ内」に 「ウィンドウモード」でウィンドウを初期表示させた後、 「SetWindowSizeExtendRate」でウィンドウ拡大率を変更すると、 「メインディスプレイ側にウィンドウが移動する」挙動が見られましたのでご報告いたします。 詳細は以下の通りです。 【現象を再現した画像】 silversecond.net/tmp/20260219_DxLib_Window.jpg 再現状況は以下の通りです。 1.Windows11のシステム→ディスプレイで、  「メインディスプレイ」に設定したディスプレイ1(横向き)と、  ディスプレイ2(縦向き)を「表示画面を拡張する」で繋げている   [ディスプレイ1:横1920×縦1080 (横向き・100%表示)]   [ディスプレイ2:横1080×縦1920 (縦向き・100%表示)] 2.ディスプレイ2にウィンドウを初期表示した後に  SetWindowSizeExtendRateを行うと、ディスプレイ1側の左上に  画面が張り付くように表示される(画面写真のA)  [ 期待する動作: ディスプレイ2内にあるままウィンドウ拡大率が変わって欲しい ] また、↓の再現コードにおいて、DxLib_Initを実行する「前」に SetWindowSizeExtendRateを行うと、初期表示の時点で 上記画面写真のAのような状態になりました。 一方、以下のケースでは期待通り、初期表示時と同じディスプレイ内で ウィンドウ拡大率が変化することを確認しました。 - ディスプレイ1(横・メイン)に初期表示してSetWindowSizeExtendRate - 「横」にしたディスプレイ2(メインでない)で初期表示してSetWindowSizeExtendRate - ディスプレイ2を「縦」かつ「メイン」にして2に初期表示してSetWindowSizeExtendRate 【再現コード】 #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); // ウィンドウモードに // ウィンドウは「メインディスプレイでない縦ディスプレイ」に初期表示してみてください SetUseDisplayIndex(1); // ←「縦向き」の「メインでないディスプレイ」に出るよう番号を変更してください //SetWindowSizeExtendRate(0.8); // このコメントアウトを外すと、DxLib_Init直後にメインディスプレイ端にウィンドウが表示されました if (DxLib_Init() == -1) { return -1; } // DXライブラリ初期化処理 DrawString(20, 120, "何かキーを押すと進みます", GetColor(255, 255, 255)); WaitKey();// キー入力待ち DrawString(20, 140, "キーが押されました、もう一度押すと終了します", GetColor(255, 255, 255)); SetWindowSizeExtendRate(0.8); // ウィンドウサイズを変えるとメインディスプレイ端にウィンドウが表示されます WaitKey();// キー入力待ち DxLib_End(); // DXライブラリの後始末 return 0; // ソフトの終了 } 【その他】 ・使用させていただいたDXライブラリは2026/02/18の22時に  ダウンロードさせていただいたDxLibVCTest.zip、Ver3.25です。  x86(32bit)でコンパイルしています。 ・OSは「Windows11 Home 25H2 (OSビルド 26200.7840)」です。 ・他のかた1名の環境でも異常が起きるという報告をいただいております。  以下の画像のディスプレイ構成でディスプレイ2に「拡大率を変えたウィンドウ」を初期表示しようとした際、  ウィンドウがディスプレイ1に下半分埋もれる形で立ち上がる、という内容でした。 silversecond.com/WolfRPGEditor/BBS/file/20260216_0901_44_1.png ご多忙のところ恐縮ですが、よろしければ一度ご確認いただけますと幸いです。
メンテ

Page: 1 |

Re: 縦表示のサブディスプレイでウィンドウ表示後にSetWindowSizeExtendRateすると期待通り動作しない ( No.1 )
名前:管理人 日時:2026/02/21 01:51

現象発生時の画像や再現コードのご提供ありがとうございます、手元でも現象を確認することが出来ました m(_ _)m 複数ディスプレイでそれぞれ解像度や縦・横設定が異なる場合に発生するバグでした 修正したバージョンをこちらにアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: 縦表示のサブディスプレイでウィンドウ表示後にSetWindowSizeExtendRateすると期待通り動作しない ( No.2 )
名前:SmokingWOLF(追加のご報告) 日時:2026/02/21 19:27

早々のご対応ありがとうございます! 作ってくださった最新版を導入して上のコードでウィンドウのサイズ変更をした場合、 期待通り同じディスプレイ内で拡大縮小されるようになりました。 一方で、いただいた最新版において、 「画面内におさまるウィンドウサイズ倍率変更」では問題が起きなくなったのですが、 ディスプレイ2(縦向き)に初期表示して、 (おそらく)画面の横幅以上になるようウィンドウ拡大率を上げた際に、 ウィンドウがディスプレイ1に表示される現象を確認いたしましたのでご報告します。 【現象を再現した画像】 silversecond.net/tmp/20260221_DxLib_Window2.jpg (上の画像と似ていますが新しいものです) 再現状況は以下の通りです。 ほぼ上と同じですが、拡大率を大きくした場合のケースとなります。 1.上記と同様、Windows11のシステム→ディスプレイで、  「メインディスプレイ」に設定したディスプレイ1(横向き)と、  ディスプレイ2(縦向き)を「表示画面を拡張する」で繋げている   [ディスプレイ1:横1920×縦1080 (横向き・100%表示)]   [ディスプレイ2:横1080×縦1920 (縦向き・100%表示)] 2.ディスプレイ2にウィンドウを初期表示した後、   (おそらく)ディスプレイ2の横幅からあふれるサイズになるよう   SetWindowSizeExtendRateで「2倍」に倍率変更すると   ディスプレイ1にウィンドウが一部埋まった状態で表示される。  [ 期待する動作: ディスプレイ2にウィンドウがあるまま拡大表示されてほしい]  →※なおSetWindowSizeExtendRateで「1.5倍」(横、約960px)にするなど、    ディスプレイ2(横1080px)からあふれないサイズの拡大率にすると、    期待通りディスプレイ2上にウィンドウがあるまま拡大表示されます。 【再現コード】 (実質、SetWindowSizeExtendRateの拡大率が変わっているのみです) #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); // ウィンドウモードに // ウィンドウは「メインディスプレイでない縦ディスプレイ」に初期表示してみてください SetUseDisplayIndex(1); // ←「縦向き」の「メインでないディスプレイ」に出るよう番号を変更してください //SetWindowSizeExtendRate(2); // このコメントアウトを外すと、DxLib_Init直後にメインディスプレイ端にウィンドウが表示されました if (DxLib_Init() == -1) { return -1; } // DXライブラリ初期化処理 DrawString(20, 220, "何かキーを押すと進みます", GetColor(255, 255, 255)); WaitKey();// キー入力待ち DrawString(20, 240, "キーが押されました、もう一度押すと終了します", GetColor(255, 255, 255)); SetWindowSizeExtendRate(2); // 0.8倍だと問題ありませんでしたが、2倍(横1280px)にすると再びメインディスプレイ端にウィンドウが表示されます WaitKey();// キー入力待ち DxLib_End(); // DXライブラリの後始末 return 0; // ソフトの終了 } 何度も申し訳ございませんが、よろしければご確認いただけますと幸いです。
メンテ
Re: 縦表示のサブディスプレイでウィンドウ表示後にSetWindowSizeExtendRateすると期待通り動作しない ( No.3 )
名前:管理人 日時:2026/02/23 23:11

追加のご報告ありがとうございます 再現コードで現象の発生を確認できました m(_ _;m こちらの現象も発生しないように修正したバージョンをアップしましたので、 よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: 縦表示のサブディスプレイでウィンドウ表示後にSetWindowSizeExtendRateすると期待通り動作しない ( No.4 )
名前:SmokingWOLF(解決済み) 日時:2026/02/24 00:32

さらなるご対応もありがとうございます! 最新のソースコードを導入させていただいた結果、おかげさまで SetWindowSizeExtendRateで他ディスプレイに表示される問題はまったく起きなくなりました。 お忙しい中での修正、誠にありがとうございました!
メンテ

Page: 1 |

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

   クッキー保存