フルスクリーン時のMessageBoxについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
羽流布

フルスクリーン時のMessageBoxについて

#1

投稿記事 by 羽流布 » 16年前

就活真っ最中ですが、まったりゲーム制作も進めてます。羽流布です。

では、本題です。
フルスクリーン状態で終了確認メッセージボックスを表示したいのです。
しかしながら添付ファイルのような感じですと、
1回目はちゃんと表示できるのに「いいえ」を選択して2回目を試すと後ろに隠れてしまいます。
(終了はエスケープキーやALT+F4です)

解決策はありませんでしょうか?

御津凪

Re:フルスクリーン時のMessageBoxについて

#2

投稿記事 by 御津凪 » 16年前

こちらの環境(Vista)では正常に表示されました。

ので、これで解決するかどうかはわかりませんが、メッセージボックスの表示のフラグに、
MB_TOPMOST (常に手前に表示)を追加してみてください。

羽流布

Re:フルスクリーン時のMessageBoxについて

#3

投稿記事 by 羽流布 » 16年前

おっと、環境を書き忘れていましたね……失礼しましたm(_ _)m

僕の環境は、
DXライブラリ:Ver2.24c → 2.25
OS:WindowsXP ( Build 2600 Service Pack 3 )
開発環境:Visual Studio 2008 Express Edition
です。

MB_TOPMOSTを試してみたところ、変化はありませんでしたorz
OSに原因があるのでしょうか?

【追記】
先ほどDXライブラリの最新版を試してみましたが、ダメでした・・・
うーん、困りました(。´・ω・)

羽流布

Re:フルスクリーン時のMessageBoxについて

#4

投稿記事 by 羽流布 » 16年前

いろいろ試してみましたが解決には至らず……。

最終的には、添付ファイルのように画面を消すという発想になりました。
ですが、見た目が美しくないということもあり実用的ではないですね。

MessageBoxによる終了確認は諦めることにします。

制作中のゲームですが、4月くらいには詳細を晒すつもりです。
では失礼しますm(_ _)m

Justy

Re:フルスクリーン時のMessageBoxについて

#5

投稿記事 by Justy » 16年前

 多分ですが、後ろに隠れているというより、ただ単に表示されていないだけだと思います。
 つまり、表示されているだろうところをクリックすれば、何か反応するかもしれません。

 で、解決方法となるかどうかはわかりませんが、DxLib_Init()前に SetUseGDIFlag()を
コールしていますよね?

 これを、DxLib_Init()の前ではなく、MessageBox()の前後に挟んでみてはどうでしょうか。
 前は 1を、後は 0を指定すれば、ひょっとしたらうまくいくかもしれません。


 ただ、フルスクリーンのアプリでダイアログが出るというのは、やっぱり美しくはないですね(^^

羽流布

Re:フルスクリーン時のMessageBoxについて

#6

投稿記事 by 羽流布 » 16年前

> Justyさん

正常に表示できました!
ホント感謝です^^

どうやらSetUseGDIFlag()はDxLib_Init()の後で使うべきだったようです。
よく解らないまま使っていました……。

【追記】
表示はできるようになりましたが、メッセージボックスをドラッグして動かすと酷いことに……。
うーん、難しい課題ですねorz

ですが、こちらは特に問題なさそうなので、とりあえず気にしない方向でいきます。
完成後の課題ということで(;^^

閉鎖

“C言語何でも質問掲示板” へ戻る