2011-12-17 10 views
1

私はAlt-Enterを押したときにフルスクリーンに戻り、ウィンドウに戻る機能を持つゲームアプリを持っています。Alt-Enterを押すとどのような関数が呼び出されますか?

DXGI Warning: IDXGISwapChain::Present: Fullscreen presentation inefficiencies incurred due to application not using IDXGISwapChain::ResizeBuffers appropriately, specifying a DXGI_MODE_DESC not available in IDXGIOutput::GetDisplayModeList, or not using DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH.

は、私はすでにテストを介して第2の二つの可能性を除外してきたので、私はポップアップ表示する警告のために残された唯一の理由を知っている:それはフルスクリーンになったときしかし、私は、DirectXから次の警告を取得しますIDXGISwapChain :: ResizeBuffersが正しく使用されていないか、またはWindowsがちょうど盗まれています。私は2番目の可能性をデバッグできないので、私はResizeBuffersの問題を抱えています。これをデバッグするには、Altキーを押してウィンドウ全体からフルスクリーンにするときに何が起きるかを見たいと思います。しかし、私のResizeDXGIBuffersメソッドを呼び出しているようではありません。実際、Alt-EnterはどこかのウィンドウやDirectXに組み込まれているようで、押されたときに消える関数呼び出しの連鎖を見つける方法はわかりません。編集:私のメソッドがWM_ACTIVATEAPPハンドラに置かれると、呼び出されますが、これは私が意味するものではありません。そのメッセージハンドラから取り出した場合、ウィンドウをフルスクリーンにするために関数を呼び出すわけではありませんが、ウィンドウはまだフルスクリーンになります。したがって、Alt + Enterは自動的にこれを行うために内部関数を呼び出す必要があります。

これは私の質問です。Alt-Enterを押したときに、どの機能がWindowsやDirectX 11によって呼び出されているか知っていますか?

EDIT:この質問のタグでは、WindowsマシンでDirectX 11を使用しています。具体的には、Windows 7 64ビット。

編集2:Alt + Enterキーストロークを完全に食べ、Alt + Enterの状態を手動で保存して、コードが呼び出されていることを確認します。私が上で述べた警告は、しかし、持続する。私はMSDN best practicesにも従っているので、ここからどこに行くのか分からない。

+0

http://msdn.microsoft.com/en-us/library/windows/desktop/ee417025%28v=vs.85%29.aspx#Full_Screen_Issues –

答えて

0

MSDNのベストプラクティスのページを見て、説明したすべてのプラクティスを反映するためにコードを再作成した後、警告は消えています。私はこれが同じ問題を抱えている他の誰にも役立つことを願っています

また、リンクのためのHans Passantに感謝します。私はあなたがそれを投稿した時点で既に修正しましたが、とにかく感謝します。

0

WM_ACTIVATEAPPメッセージを処理してください。

私はどのフレームワークを使ってウィンドウを作成するのか分かりませんので、このメッセージを具体的にどのように処理するのか分かりません。

+0

申し訳ありませんが、これは私が探しているものではありません。私はすでにそのメッセージを扱っています。私が手作業で行うことなくウィンドウをサイズ変更する組み込み呼び出しが間違いなくあります。 – Darkhydro

関連する問題