OSDN Ticket Archive


Ticket #39274

Win版 フルスクリーン表示対応

登録: 2019-06-01 22:04 最終更新: 2019-06-03 23:46

報告者:
yknk
担当者:
yknk
チケットの種類:
機能リクエスト
状況:
完了
コンポーネント:
MIDITrail Ver.1.2.x for Windows
マイルストーン:
Version 1.2.6 for Windows (完了済み)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

フルスクリーン表示に対応する。

参考チケット

  • #39276 macOS版 フルスクリーン表示対応

チケットの履歴

2019-06-01 22:04 更新者: yknk
  • 新しいチケット "Win版 フルスクリーン表示対応" が作成されました
2019-06-01 22:11 更新者: yknk
  • 詳細が更新されました
2019-06-01 22:13 更新者: yknk
コメント

仕様

  • メインウィンドウの最大化ボタンを有効にして、フルスクリーン表示可能とする。
  • Viewメニューに"Full Screen"を追加する。
  • F11キーでフルスクリーン切り替え可能とする。
  • フルスクリーン表示時にマウスカーソルを画面上端に移動したときメニューを表示する。
2019-06-01 22:14 更新者: yknk
コメント

対策:DirectXユーティリティの修正

DXRenderer::Initialize

引数にフルスクリーンフラグを追加。 フルスクリーンを指定された場合、フルスクリーンモードでディスプレイアダプタデバイスを生成するように修正。 ただしテストした結果、最終的にフルスクリーンフラグは常にfalseで呼び出すこととした。 今後フラグを利用する可能性を考慮して、実装は残す。

2019-06-01 22:15 更新者: yknk
コメント

対策:MIDITrailメインクラスの修正(フルスクリーン切り替え処理)

MIDITrailApp

メンバにフルスクリーンフラグ(m_isFullScreen)とメニューのウィンドウハンドル(m_hMenu)を追加。

MIDITrailApp::MIDITrailApp

追加したメンバの初期化処理を追加。

MIDITrailApp::_RegisterClass

背景用ブラシハンドルに黒を指定。 フルスクリーン表示切り替え時にウィンドウが一瞬白くなる事象を回避するため。

MIDITrailApp::_CreateWindow

メインウィンドウ生成時のスタイル指定(MIDITRAIL_WINDOW_STYLE)を変更し、最大化ボタンが有効になるようにWS_MAXIMIZEBOXを追加。 メインウィンドウ生成直後に メニューのウィンドウハンドルを取得してメンバに保持する。

MIDITrailApp::_SetWindowSize

フルスクリーン表示の場合は、フルスクリーン用のウィンドウサイズ変更メソッド(_SetWindowSizeFullScreen)を呼び出すように修正。 フルスクリーン表示からウィンドウ表示に戻るときを考慮して、ウィンドウスタイルを設定しなおす処理と、 メニューを表示する処理を追加。

MIDITrailApp::_SetWindowSizeFullScreen

フルスクリーン表示用のウィンドウサイズ変更メソッドを追加。 マルチモニタを考慮して、マウンカーソルが存在するモニタでフルスクリーン表示する。 フルスクリーン表示用のウィンドウスタイルを設定しメニューを非表示にする。

MIDITrailApp::_ChangeMenuStyle

フルスクリーンメニューの活性化制御を追加。

MIDITrailApp::_UpdateMenuCheckmark

フルスクリーンメニューの選択マーク更新処理を追加。

MIDITrailApp::_ToggleFullScreen

フルスクリーン切り替えメソッドを追加。

MIDITrailApp::_ShowMenu

メニュー表示メソッドを追加。

MIDITrailApp::_HideMenu

メニュー非表示メソッドを追加。

2019-06-01 22:15 更新者: yknk
コメント

対策:MIDITrailメインクラスの修正(イベントハンドラ)

MIDITrailApp::_WndProcImpl

フルスクリーンメニューが選択された時のイベントハンドラ呼び出し処理を追加。 マウスが移動したときのイベントハンドラ呼び出し処理を追加。 ウィンドウ最大化ボタンが押されたときのイベントハンドラ呼び出し処理を追加。

MIDITrailApp::_OnMenuFileOpen

フルスクリーン表示中にファイル選択されたときは、メニューを隠す処理を追加。 ファイル読み込み後のシーン生成処理でクライアントウィンドウのサイズを参照しており、 メニューが表示されていると、メニューの縦サイズ分だけ座標計算がずれてしまうため。

MIDITrailApp::_OnMenuFullScreen

フルスクリーンメニュー選択時のイベントハンドラを追加。

MIDITrailApp::_OnMouseMove

マウス移動イベントハンドラを追加。 フルスクリーン時にマウスカーソルがウィンドウの上端に移動した場合は、メニューを表示する。

MIDITrailApp::_OnKeyDown

F11キーが押されたとき、フルスクリーンメニュー選択のイベントハンドラを呼び出す処理を追加。

2019-06-01 22:15 更新者: yknk
コメント

対策:リソースの修正

MIDITrail.rc

Viewメニューに"Full Screen"を追加。

2019-06-03 23:46 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません