DirectXでフルスクリーンモード

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

DirectXでフルスクリーンモード

#1

投稿記事 by Libra » 15年前

現在、DirectXとC++を使って、プログラムを組んでいるのですが、
添付したソースの1を参考に、WinMain関数にある
APIのウィンドウクラスの登録部分と、DirectXの初期化を
クラスにしたいと思ってます。
プログラムを組んでみたのですが、1のソースと異なり、
自分の組んだ2のソースでは、フルスクリーン実行時に
ウィンドウの上部にウィンドウの名前が出てしまいます。
また、その状態で最小化を行うと

組んだプログラム概要
Inputクラス(DirectInput)→→→→→→→→→→→→→→Libraクラス(派生クラス)
SetWindowクラス(Wndクラス登録&DirectX初期化)→→↑

実行結果
1:フルスクリーンで画像が出る
2:ウィンドウがフルスクリーンで出る

開発環境
VisualStudio2008

C言語は独習Cを一通りやって、C++を勉強中です。

Justy

Re:DirectXでフルスクリーンモード

#2

投稿記事 by Justy » 15年前

 ウィンドウスタイルが変な感じがしますね。
 フルスクリーンなのに WNDSTYLEが指定されています。
 とりあえず、WS_POPUPに変えてみたらどうなりますか?

Libra

Re:DirectXでフルスクリーンモード

#3

投稿記事 by Libra » 15年前

返信ありがとうございます。
ウィンドウスタイルを変更したら、期待通りの動作になりました。

元のソースはフルスクリーンとウィンドウモードで、
ウィンドウスタイルが同じだったので、
スタイルは同じでも良いと考えていました。




追加で質問したいです。

作りたい仕様

・フルスクリーンで起動し、最小化した後、
元のサイズにするとフルスクリーンに戻る

・起動中に解像度を(あらかじめ決めた値に)変更したい
(640×480→1280×960等)




現在の状況
・フルスクリーンで起動、最小化後、
ウィンドウクラスで指定した大きさになってしまう。



・予想

フルスクリーン:
→メッセージを受け取って何かしらの処理?
→ウィンドウ破棄して、もう一度ウィンドウ作成から?

解像度:
→複数ウィンドウクラスを用意する?


これらに関して、実装手順、ヒント、参考サイト等
教えていただけないでしょうか?

Justy

Re:DirectXでフルスクリーンモード

#4

投稿記事 by Justy » 15年前

解像度の変更、フルスクリーンの解除はこのページが参考になるかもしれません。

Win32API(C言語)編 第63章 画面解像度の変更
http://www.geocities.jp/ky_webid/win32c/063.html

フルスクリーン
http://eternalwindows.jp/winbase/window/window13.html

Libra

Re:DirectXでフルスクリーンモード

#5

投稿記事 by Libra » 15年前

回答ありがとうございます。
リンクの内容をヒントに、さらにいろいろ調べたところ、
欲しかった内容のページが見つかりました。

http://www36.atwiki.jp/directx/pages/15.html

一応、これで解決という事で、チェック入れます。
Justy様、ありがとうございました。


書籍とかがあれば、それに沿ってやりたいのですが、
現在大学の書籍コーナーからDirectX系の書籍が消えていまして、
(恐らくDirectX11が出たから?)
ネットで調べてしか進めないという状態です・・・。

閉鎖

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