ダイアログを全画面表示

[戻る]
飛んできたどらやき 2009/08/27(木) 15:48:59
VC++2005で作ったダイアログクラスを
全画面表示したいのですが、
どうしたらいいのでしょうか?

WINDOWSのスタートボタン等も非表示にしたいです。

subaru 2009/08/28(金) 11:31:06
画面と同じサイズにして最前面に持ってくるとかいうことですか?

GetMonitorInfo(画面サイズの取得)
http://msdn.microsoft.com/ja-jp/library/cc428707.aspx

SetWindowPos(サイズ、位置、Zオーダー変更)
http://msdn.microsoft.com/ja-jp/library/cc411206.aspx

移動不可にするにはシステムメニューから移動メニューを削除するか
WM_SYSCOMMAND の SC_MOVE で何もしないように変更する必要があるでしょう。

tetrapod 2009/08/28(金) 12:38:16
デュアル・トリプルスクリーンのマシンでどうなったらいいのかと疑問な年頃。

PATIO 2009/08/28(金) 13:36:20
というか、何が目的でそうしたいのかなぁと思ったり。

そのアプリが動作中はPCをシャットダウンできなくしたいのかなぁ。
まあ、どこまでやればOKなのかとかも有りますけれど、
とにかく、ご本人の方からその辺の話が出てこないと
何ともいえない感じですね。

飛んできたどらやき 2009/08/28(金) 14:39:34
皆様お返事有難うございます。

目的はゲームする時の全画面表示と同様に
ダイアログのみを全画面にしたいのです。

DirectX等を使うと全画面表示メソッドがあるので、
楽なのですが、今回の目的のためだけに
DirectX対応をするのも大作業かと思います。

また、GetSystemMetrics系のメソッドだと、
ウィンドウズのタスクバーを非表示にしないといけないので、
どうすればいいのかわかりません。。。
何かいい方法ご存じでしょうか?

tetrapod 2009/08/28(金) 15:08:45
いや、だからなぜ
> ダイアログのみを全画面にしたいのです。
こうしたいのか、その理由が無いと

常に全画面表示しかしないアプリケーションなど使い勝手が悪くて却下。捨て捨て!
という答えにしかならない。
で、デュアルスクリーンのマシンでどうなったらいいのかは答えてくれないわけね。

飛んできたどらやき 2009/08/28(金) 15:14:56
>いや、だからなぜ
>> ダイアログのみを全画面にしたいのです。
>こうしたいのか、その理由が無いと

理由は見た目がいいからです(笑)
ただ単にソフト起動中は全画面にしたいんですよね。


>で、デュアルスクリーンのマシンでどうなったらいいのかは答えてくれないわけね。

すみません。
デュアルは確かにセカンダリ画面に表示すれば、
全画面になるかなと想像出来ましたが、
ちょっとスクリーン持っていないので(笑)
何とも答えれませんでした。

ryo 2009/08/28(金) 20:06:26
「〜疑問な年頃。」
この書き方で質問だったのか^^;

>ただ単にソフト起動中は全画面にしたいんですよね。
これって、最小化やら、ALT+TABなどによる切り替えも制限したいの?
それとも、たんに「ゲームプレイ中は全画面を使いたい」ってだけ?

飛んできたどらやき 2009/08/28(金) 21:39:56
お返事ありがとうございます。

>これって、最小化やら、ALT+TABなどによる切り替えも制限したいの?
>それとも、たんに「ゲームプレイ中は全画面を使いたい」ってだけ?

はい、単に「ゲームプレイ中は全画面を使いたい」んです。

POSTMESSAGEにてシステム系へと
スタートメニューを隠す処理等を探していたのですが、
何とも見つかりません。。。

何かいい方法ご存じでしょうか?

ISLe 2009/08/29(土) 00:33:00
ChangeDisplaySettingsを使えばフルスクリーンにできますが、ダイアログの外側の面倒
を誰が見るのか問題が残る気がします。

フルスクリーンのゲームは、マウスクリックなどがデスクトップ(あるいは他のアプリケ
ーションウィンドウ)に渡ってしまわないように、WS_POPUPスタイルのウィンドウでスク
リーン全体を覆うようにします。

subaru 2009/08/29(土) 02:16:25
プライマリーモニターのみでよければGetSystemMetricsでも
画面サイズは取れるはずですが。

DirectXで最大化なんかだとダイアログというよりウインドウというイメージ。
最大化対象がウインドウかダイアログかで目的が異なってくる気がするですけど・・・

飛んできたどらやき 2009/08/31(月) 09:26:05
[[解決]]
皆様、お返事ありがとうございます。
マウスムーブイベントでマウス位置管理をしながら
ChangeDisplaySettingsで行ってみようと思います。

確かにDirectXでダイアログ表示はどうなんでしょうね。
ただ、ウィンドウモードを変える機能もあるそうなので、
上記SDKをラップしている感もありますが。

色々とありがとうございました。

PATIO 2009/08/31(月) 10:37:44
解決しちゃってますが。

フルスクリーン表示可能なDirectXを使ったゲームを
わざわざWindowモードでスタートメニュなんかが見えるようにして
使っている人からすると、

「理由は見た目がいいからです(笑)
ただ単にソフト起動中は全画面にしたいんですよね。」

が正解とはかぎらなないよなぁと思ったりします。
tetrapodさんが言われていたように逆にイヤと思う人もいそうです。
逆にそこまでして全画面にしたいならDirectXを使った方が
正解じゃないかという気がしたりします。
ゲームの内容がいまひとつ分からないので
全画面にした時の良い面と言うのがさっぱり分からないのも
そう感じる要因なんですけどね。

飛んできたどらやき 2009/08/31(月) 10:50:55
確かにダイアログベースでありながら、
WINDOWSの機能を隠す点からいいますと、
中途半端に捉えられる方もいるかもしれませんね。。。

モードを設けて切り替えれるようにしてみます。

ありがとうございました。

古いスレッドには追加発言できません。