1

WM_GETMINMAXINFO最大化操作が開始されようとしているWM_SIZEときと、最大化操作が終了したときに生成されます。

WM_SIZE復元操作が終了したときにも生成されます。

しかし、ウィンドウの復元操作が始まろうとしているのをどのように検出するのでしょうか?


ウィンドウが復元されようとしている正確な瞬間を検出する必要がありますが、既に復元された瞬間ではありません。マルチスレッドDirectXアプリケーションを開発しています。専用のセカンダリ スレッドでレンダリングします。ウィンドウが最大化または復元を開始しようとしているときに、レンダー バック バッファー サイズ ( ) を変更する必要がありますDirectX Device Reset。メイン スレッドからのみバック バッファーのサイズを変更できるのでCritical Sections、レンダー スレッドと同期するために使用します。問題は、レンダリング スレッドで操作を中断Presentできず、最大化または復元操作が始まろうとしているときに、現在のPresent操作が終了するまで待ってから、サイズ変更 (最大化/復元) を開始することです。バッファサイズを変更するのが遅すぎる場合 (最大化/復元操作が終了したとき (WM_SIZEメッセージ)、古いフレームが間違ったサイズで描画される (画像が引き伸ばされる) ことに気付く場合があります)。

4

1 に答える 1