トップページ > 記事閲覧
フルスクリーンモードとウィンドウモードの切り替えについて
名前:かさ 日時: 2024/07/18 17:12

C#でDXライブラリを使用させていただいております。 何かのキー(例えばF11)を押したときにウィンドウモードとフルスクリーンモードを切り替えたいです。 ウィンドウモードの時は1280×720のサイズ、フルスクリーンモードの時は1920×1080のサイズにしたいです。(モニターは1920×1080です。) その際描画されている画像(1920×1080用)なども一緒に拡大されたり縮小されるようにしたいです。 何か方法をご教授いただけないでしょうか。 DXライブラリどころかC#も初心者で、仕組みなど詳しくわかっていません。同じような質問が過去にされていたり、また無理な質問でしたら申し訳ありません。
メンテ

Page: 1 |

Re: フルスクリーンモードとウィンドウモードの切り替えについて ( No.1 )
名前:管理人 日時:2024/07/20 02:18

ご返信が遅くなり申し訳ありません 画面の解像度は SetGraphMode で設定することができます <SetGraphMode の解説> https://dxlib.xsrv.jp/function/dxfunc_graph3.html#R4N1 ウィンドウモードとフルスクリーンモードの切り替えは ChangeWindowMode で行うことができます <ChangeWindowMode の解説> https://dxlib.xsrv.jp/function/dxfunc_other.html#R11N1 > ウィンドウモードの時は1280×720のサイズ、フルスクリーンモードの時は1920×1080のサイズにしたいです。(モニターは1920×1080です。) > その際描画されている画像(1920×1080用)なども一緒に拡大されたり縮小されるようにしたいです。 現在のDXライブラリでは、デフォルトでご希望の処理をしていますので、ChangeWindowMode( FALSE ); で フルスクリーンモードに切り替えて頂ければご希望の動作は完了です ( 例えば SetGraphMode( 1280, 720, 32 ); のように画面解像度を 1280×720 を指定した状態で ChangeWindowMode( FALSE ); で フルスクリーンにした場合、モニターの解像度( 1920×1080 )は変更せずに 1280x720 のゲーム画面を 1920×1080 に 拡大して表示されます )
メンテ
Re: フルスクリーンモードとウィンドウモードの切り替えについて ( No.2 )
名前:かさ 日時:2024/07/22 20:20

お忙しいなか返信ありがとうございます。 ChangeWindowModeを使うと一度ロードした画像なども一度削除されてしまうようなので、違う方法を調べたところSetWindowSizeという関数があることを知りました。 使ってみたところ、本当のフルスクリーンモードにはなりませんが、疑似的にフルスクリーンモードのような状態にできそうなのでとりあえずこちらを使うことにしました。 せっかく返信してくださったのに、勝手に自己解決してしまい、申し訳ありません。 今後よりDXライブラリを使いこなせるように勉強したいと思います。ありがとうございました。 (ちなみにSetWindowSize関数はこのような使い方をしても問題ないでしょうか。)
メンテ
Re: フルスクリーンモードとウィンドウモードの切り替えについて ( No.3 )
名前:管理人 日時:2024/07/22 22:11

> ChangeWindowModeを使うと一度ロードした画像なども一度削除されてしまうようなので、違う方法を調べたところSetWindowSizeという関数があることを知りました。 > 使ってみたところ、本当のフルスクリーンモードにはなりませんが、疑似的にフルスクリーンモードのような状態にできそうなのでとりあえずこちらを使うことにしました。 リファレンスに載っていませんが SetChangeScreenModeGraphicsSystemResetFlag という関数に FALSE を渡して呼ぶと ChangeWindowMode を使用してもロードした画像が削除されなくなります // 画面モード変更時( とウインドウモード変更時 )にグラフィックスシステムの設定やグラフィックハンドルをリセットするかどうかを設定する // Flag TRUE:リセットする( デフォルト ) FALSE:リセットしない int SetChangeScreenModeGraphicsSystemResetFlag( int Flag ) ; > (ちなみにSetWindowSize関数はこのような使い方をしても問題ないでしょうか。) 想定していない使用方法となりますので、現在は問題が無いかもしれませんが今後 Windows のバージョンが上がった際などに SetWindowSize関数では擬似的なフルスクリーンにならない等の問題が発生する可能性があります なので、よろしければ SetChangeScreenModeGraphicsSystemResetFlag( FALSE ); と ChangeWindowMode を使用するようにしてみてください m(_ _)m
メンテ
Re: フルスクリーンモードとウィンドウモードの切り替えについて ( No.4 )
名前:かさ 日時:2024/07/25 10:25

何度もありがとうございます。私の考えていることが、うまくできそうなのでその関数を使わせていただくことにします。
メンテ

Page: 1 |

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

   クッキー保存