ウィナピのダブルバッファリング
-
29-09-2019 - |
質問
デフォルトのWinAPIアプリケーションには、二重バッファリングがありません。代わりに、描画する必要があるものだけが描かれ、それがシームレスな外観を与えることを保証するという非常に良い仕事をします。ただし、ウィンドウをサイズ変更すると、全体を再描画する必要があります。これにより、コントロール、タブの背景、時にはタブの白が点滅します。
私の質問は、アプリケーションでダブルバッファリングをサポートする最も簡単な方法は何ですか?
解決
ウィンドウのサイズのビットマップを作成し、そのビットマップにレンダリングし、完了したらウィンドウに戻します。
既存のコードで非常に簡単なインプレース交換を行うことができます。ウィンドウにレンダリングするデバイスのコンテキストを使用する代わりに、ビットマップにレンダリングするデバイスコンテキストを使用し、元のDCのみを使用してビットマップをバックします。
必ずビットマップを維持してください - すべてのペイントコールで作成しないでください。ウィンドウがサイズ変更されたら、再作成する必要があります。
他のヒント
次の記事をご覧ください。 オフスクリーンDCを使用したフリッカーフリーディスプレイ.
この記事では、画面が点滅しないようにウィンドウデバイスコンテキスト(DC)に描画する手法について説明します。この手法は非常にシンプルで実装が簡単です。
数年前にこのチュートリアルからちらつきを防ぐ方法を学びました。
所属していません StackOverflow