デフォルトのwinAPIアプリケーションにはダブルバッファリングがありません。代わりに、描画する必要があるものだけが描画され、シームレスな外観が得られるようにするという非常に優れた機能を果たします。ただし、ウィンドウのサイズを変更すると、全体を再描画する必要があります。これにより、コントロール間、タブの背景、場合によってはタブの白がちらつきます。
だから私の質問は、私のアプリケーションでダブルバッファリングをサポートする最も簡単な方法は何ですか?
デフォルトのwinAPIアプリケーションにはダブルバッファリングがありません。代わりに、描画する必要があるものだけが描画され、シームレスな外観が得られるようにするという非常に優れた機能を果たします。ただし、ウィンドウのサイズを変更すると、全体を再描画する必要があります。これにより、コントロール間、タブの背景、場合によってはタブの白がちらつきます。
だから私の質問は、私のアプリケーションでダブルバッファリングをサポートする最も簡単な方法は何ですか?
ウィンドウのサイズのビットマップを作成し、そのビットマップにレンダリングし、完了したらそれをウィンドウにブリットバックします。
既存のコードで非常に簡単なインプレース置換を行うことができます。ウィンドウにレンダリングするデバイスコンテキストを使用する代わりに、ビットマップにレンダリングするデバイスコンテキストを使用し、元のDCのみを使用してビットマップをブリットバックします。
ビットマップは必ず保持してください。すべてのペイント呼び出しで作成しないでください。ウィンドウのサイズが変更されたときに再作成する必要があります。
次の記事をご覧ください:オフスクリーンDCを使用したフリッカーフリーディスプレイ。
この記事では、画面がちらつかないようにウィンドウデバイスコンテキスト(DC)に描画する手法について説明します。この手法は非常にシンプルで、実装も簡単です。
数年前、このチュートリアルからちらつきを防ぐ方法を学びました。