2009-07-09 25 views
1

私はOpenGLウィンドウを持つアプリケーションをメインウィンドウの子ウィンドウとして持っています。OpenGLウィンドウの上にWindowsが描画されない

OpenGLウィンドウの上にダイアログボックスを表示しても、描画されません。それはWM_PAINTメッセージを取得していないようです。ダイアログボックスのタイトルバーの位置を推測することができればドラッグすることができますが、それでも反応します。

これはあいまいな質問かもしれませんが、他の誰かがこの種の動作を以前に見て解決策を知っているのだろうかと思いましたか?

私はピクセルフォーマット記述子が違いを生むかどうか疑問に思った。私はPFD_DRAW_TO_WINDOWだったが、PDF_DRAW_TO_BITMAPに変更しても差は出なかった。私は他に何を見なければならないのか分かりません。

答えて

1

バグ。すべての詳細を与えておかなければならない。 Parallelsを使用してMac OS X上の仮想マシンでWindowsを実行していました。私はParallels 3から4にアップグレードしましたが、今はすべて正常に動作しています。私はParallelsビデオドライバの問題を疑う。

提案で回答したすべての方に感謝します。

0

あなたのOpenGLウィンドウは常にレンダリングされていますか? 3Dハードウェアは単にダイアログボックスをオーバードローするオーバーレイにレンダリングしている可能性があります。メインウィンドウと重なるようにダイアログボックスを配置すると、その一部を表示できますか?

レンダリングをメインディスプレイに一時停止し、結果に影響するかどうかを確認してください。

ます。また、それは、多くのをカバーとしてあなたは、このMSDNの記事で言及したすべての項目かかわらず、チェックする必要があり

cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN ; 

...あなたのウィンドウスタイルは、結果がクリップされることを保証することを確認する必要がありますウィンドウ内でOpenGLレンダリングを正しく行うための基本。

http://msdn.microsoft.com/en-us/library/ms970745.aspx

+0

ありがとうございました。役に立つリンク。 –

0

あなたはオーバーレイをオフにする必要があるかもしれません。これは、スワップの代わりにコピーするためのバッファバックプレゼンテーションメソッドを強制的に行うことによって行うことができます。

使用wglChoosePixelFormatARBとパラメータの一つが値WGL_SWAP_COPY_ARB

0

WGL_SWAP_METHOD_ARBする必要があります。この5月には、愚かなようだが、あなたのOpenGLのウィンドウは、「最上位」のフラグが立てられていないことを確認していますか?

ウィンドウの境界線の後ろ、またはOpenGLレンダリング矩形のすぐ後ろにダイアログボックスが表示されませんか?

+0

いいえ、それは最上位ではなく、はい、それは問題ではなく、ウィンドウ全体であるOpenGLレンダリングの四角形です。 (しかし、解決策については私の答えを見てください!) –

関連する問題