トップページ > 記事閲覧
ウィンドウモードでアスペクト比を維持したサイズ変更
名前:あいおい? 日時: 2021/02/19 18:05

SetWindowSizeChangeEnableFlag を TRUE にすると、アスペクト比を維持したままウィンドウのサイズを変更することができます。 この状態のウィンドウをWindowsの機能のAero Snapを使い最大化すると、アスペクト比を維持したままレターボックスの状態で最大化されます。 しかし、私の知る限り「アスペクト比を維持したままレターボックスでウィンドウサイズ変更」は、SetWindowSizeでは再現できません。 既にこの機能があるのであれば、関数名を教えてください。
メンテ

Page: 1 |

Re: ウィンドウモードでアスペクト比を維持したサイズ変更 ( No.1 )
名前:管理人 日時:2021/02/21 00:14

手元で SetWindowSizeChangeEnableFlag を TRUE にしても Aero Snap で最大化できないのですが、 SetWindowStyleMode で最大化できるモードにして試されたのでしょうか? ともあれ Aero Snap で最大化されるとアスペクト比を維持したままレターボックスの状態で 最大化されるのは私の想定外で、偶然の産物です なので、これを意図的に行うような機能はありません (・・;;
メンテ
Re: ウィンドウモードでアスペクト比を維持したサイズ変更 ( No.2 )
名前:あいおい? 日時:2021/02/21 02:49

> 最大化されるのは私の想定外で、偶然の産物です なるほど……綺麗に表示されるので、仕様通りの挙動かと思いました DX.ChangeWindowMode(DX.TRUE); DX.SetWindowSizeChangeEnableFlag(DX.TRUE); DX.SetWindowStyleMode(7); この設定でAero Snapで最大化することができます。 ttps://gyazo.com/b378516a2a9c2e63b769c55e728d8e6f このようなウィンドウを、 ttps://gyazo.com/f164cafd854415ced0fd4f3afe27da36 こうすることができます。 仮想フルスクリーンを実装するにあたり、任意のサイズでレターボックス(縦横比を維持してできる限り大きく拡大しつつ)ができればいいなと思いました。
メンテ
Re: ウィンドウモードでアスペクト比を維持したサイズ変更 ( No.3 )
名前:管理人 日時:2021/02/22 00:50

> DX.ChangeWindowMode(DX.TRUE); > DX.SetWindowSizeChangeEnableFlag(DX.TRUE); > DX.SetWindowStyleMode(7); >  > この設定でAero Snapで最大化することができます。 ご返答ありがとうございます 手元でも確認することができました > 仮想フルスクリーンを実装するにあたり、任意のサイズでレターボックス(縦横比を維持してできる限り大きく拡大しつつ)ができればいいなと思いました。 現状では SetGraphMode でデスクトップ画面と同じサイズを指定して、 自前で『縦横比を維持してできる限りゲーム画面を大きく描画する』処理を組むことで ゲーム画面のサイズやレターボックスの表示を自由に表現することができます
メンテ
Re: ウィンドウモードでアスペクト比を維持したサイズ変更 ( No.4 )
名前:あいおい?(解決) 日時:2021/02/23 20:18

>>> 現状では SetGraphMode でデスクトップ画面と同じサイズを指定して、 自前で『縦横比を維持してできる限りゲーム画面を大きく描画する』処理を組むことで ゲーム画面のサイズやレターボックスの表示を自由に表現することができます SetGraphMode関数で解像度を指定するのは制作中のアプリでは難しいので、 「縦横比を維持できる最大のウィンドウサイズ」を計算し、ボーダーレスにした状態で、画面中央に表示されるように位置を設定する という実装にします。 この場合黒帯がつくことはありませんが最低限の変更で済むため、この方法を採用することにしました。 ありがとうございました!
メンテ

Page: 1 |

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

   クッキー保存