MFCで記述されたMDIアプリケーションには、MDIクライアント領域のスクリーンショットをファイルに保存する機能があります。現在、画面からビットマップにBitBltを実行しており、それが保存されます。問題は、一部のMDI子ウィンドウのコンテンツがOpenGLによってレンダリングされ、宛先ビットマップでこれらの領域が空白または文字化けして表示されることです。
私はいくつかの代替案を検討し
ました:-OpenGLコンテンツを直接(glReadPixelsを使用して)抽出し、これを画面ビットマップの関連部分に描画します。
-ALT + PrtScrをシミュレートします。これを手動で行うと、コンテンツが正常に取得されるように見えるためです。ただし、これによりクリップボードのコンテンツが破棄されます。
-DWMを使用してみてください。VistaとWin7からのAppart、これはWin2000とXPでも動作する必要があるので、これはおそらく行く方法ではありません。
任意の入力をいただければ幸いです。