トップページ > 記事閲覧
ディスプレイ解像度がwindowsのディスプレイ解像度設定どおりに読み込まれない
名前:C++開発にわか 日時: 2022/10/20 21:43

お世話になっております。Dxlibを日常的に使わせていただいているものです。 現在、マルチディスプレイ、メインではないほうのディスプレイ(display1)でウィンドウモードでプログラムを起動しようと試みているのですがうまくいかず困っております。 以前以下のコードで処理を書いたときは成功しておりました。 int nDevs = DxLib::GetDirectDrawDeviceNum(); SetUseDirectDrawDeviceIndex(nDevs-1); 表示したいウィンドウは以下のように1280 * 800の解像度で1.5倍に拡張し1920*1200大きさで表示しようとしています。 ChangeWindowMode(TRUE); SetGraphMode(1280, 800, 16); SetWindowSizeExtendRate(1.5); また、以前うまくいっていたときのログが以下のようにメインディスプレイ、サブディスプレイともに1920 * 1200の解像度で読まれていた (windowsのディスプレイ設定でどちらも1920*1200になっている)のですが、うまくいかない場合だとDISPLAY2において読み込まれる解像度が設定と異なる値になってしまっているようです。 どのようにすればwindowsの設定どおりの解像度でよっび出せますでしょうか、ご教授いただけますと幸いです。 ----------------(うまくいった方の記述) ディスプレイ情報のセットアップ開始 モニターの数:2 ディスプレイデバイスの数:3 No.0 モニター名:\\.\DISPLAY1 1920x1200 32bit 60Hz No.1 モニター名:\\.\DISPLAY2 1920x1200 32bit 59Hz ----------------(うまくいかないほうの記述) モニターの数:2 ディスプレイデバイスの数:3 No.0 モニター名:\\.\DISPLAY1 1920x1200 32bit 60Hz 120x120dpi No.1 モニター名:\\.\DISPLAY2 2400x1500 32bit 59Hz 120x120dpi
メンテ

Page: 1 |

Re: ディスプレイ解像度がwindowsのディスプレイ解像度設定どおりに読み込まれない ( No.1 )
名前:管理人 日時:2022/10/21 01:44

ログに出力されるディスプレイの解像度の数値に使用するパラメータを変更してみましたので、よろしければこちらの 処理変更バージョンをお試しになってみてください 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.3 用 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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: ディスプレイ解像度がwindowsのディスプレイ解像度設定どおりに読み込まれない ( No.2 )
名前:質問者(C++開発にわか) 日時:2022/10/24 13:13

ご対応下さり、ありがとうございます。 頂いたコードをりよういたしまして、ビルドしたところ、ログに出力されるパラメータは期待どおりの動作をしました。 また、自分が勘違いしていた(忘れていた)ようで、SetUseDirectDrawDeviceIndexはウィンドウモードだから自分が思った通りに動かなかったということがわかりました。 お手数をおかけしてしまい、申し訳ございませんでした。
メンテ
Re: ディスプレイ解像度がwindowsのディスプレイ解像度設定どおりに読み込まれない ( No.3 )
名前:質問者(C++開発にわか)(解決済) 日時:2022/10/24 13:28

たびたび、すみません。 なぜか、解像度1280*800(SetGraphModeで指定)・フルスクリーンモード(SetFullScreenResolutionMode(DX_FSRESOLUTIONMODE_DESKTOP);)でビルドした後に 最初のコード int nDevs = DxLib::GetDirectDrawDeviceNum(); SetUseDirectDrawDeviceIndex(nDevs-1); ChangeWindowMode(TRUE); SetGraphMode(1280, 800, 16); SetWindowSizeExtendRate(1.5); に直してビルドしたところ、なぜかうまく、1280*800の解像度で1.5倍に拡大したwindowをサブスクリーン(DISPAY2)に表示することができました(やりたいことができた)。 理由がわからないので何とも言えませんが、同じことで困っている方がもしいらっしゃれば助けになりますと幸いです… 管理人様、再度になりますが、素早いご対応ありがとうございました。これにて解決済みとさせていただきます。
メンテ

Page: 1 |

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

   クッキー保存