重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんばんは、現在DirectX 9 でゲームを作っています。

ゲームの表示領域の大きさは 640×480 にしているのですが、
フルスクリーン表示にすると、
現在のPCの解像度 1024×768 の左上の 640×480 だけに表示され、画面いっぱいに拡大されません。

一般のゲームを見ると、起動時に PCの方の解像度を変更しているようなのですが、どうやればいいのでしょうか?

開発環境は VC++ 2005 です。
ご回答お待ちしております。

A 回答 (2件)

★関数などのアドバイスのみです。

参考に!
・『ChangeDisplaySettings』API関数で出来そうです。
 プロトタイプ宣言は下のようになります。

LONG ChangeDisplaySettings(
 LPDEVMODE lpDevMode, ←変更するグラフィックスモード(DEVMODE構造体)
 DWORD dwflags ←グラフィックスモードの変更方法
);

参考文献1:解像度モードの切り替え
http://tigereye.isc.chubu.ac.jp/PkenDesign/pd200 …
http://www.geocities.jp/ky_webid/win32c/063.html
http://hp.vector.co.jp/authors/VA007941/program/ …
http://www.kit.co.jp/vbit/QAndA04.htm

参考文献2:構造体(DEVMODE)
http://www.winapi-database.com/Struct/DEVMODE.html
http://www.activebasic.com/help_center/Pages/API …

参考URL:http://msdn.microsoft.com/library/ja/default.asp …
    • good
    • 0
この回答へのお礼

まとめて No.2 の方に書いておきました。

お礼日時:2007/03/15 19:05

DirectXの初期化時、或いはリセット時に


ウインドウモードかフルスクリーンモードかを指定するパラメータがあると思います。
D3DPRESENT_PARAMETERSのWindowedの箇所です。
D3DPRESENT_PARAMETERSは
IDirect3D9::CreateDeviceやIDirect3DDevice9::Reset
の引数です。
またD3DPRESENT_PARAMETERSに解像度の情報も入ります。
    • good
    • 0
この回答へのお礼

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

皆様にご指摘された所らへんのコードを見てみると、
どうやらフルスクリーンの場合、バックバッファのサイズに現在の解像度(1024×768)が入ってしまっていたようでした。

ネットにあったサンプルを改変して使っていたので理解できていなかったみたいです・・・。
やはり解らない所もしっかりと理解出来ていないと DirectX ぐらい複雑になってくるとトラブルに対処出来ないという事を痛感いたしました・・・。

お礼日時:2007/03/15 19:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!