WM_ERASEBKGND
通常、Windowsでは、ちらつきを減らす最も簡単な(ただし最も効果的ではない)方法は、通知処理をオフにすることです。これは、通知ハンドラーで背景を消去してからWM_PAINT
ハンドラーでウィンドウをペイントすると、2つの間に短い遅延があるためです。この遅延はちらつきとして表示されます。
代わりに、ハンドラーですべての消去と描画を行うと、WM_PAINT
ちらつきが大幅に少なくなる傾向があります。これは、2つの間の遅延が減少するためです。2つのアクションの間にまだわずかな遅延があるため、特にサイズ変更時に、まだ多少のちらつきが見られます。また、モニターの垂直ブランキング割り込みが次に発生する前に、すべての図面に入ることができるとは限りません。ダブルバッファリングを使用できない場合は、これがおそらく使用できる最も効果的な方法です。
クライアント領域の無効化に関する通常の推奨事項のほとんどに従うことで、描画パフォーマンスを向上させることができます。本当に必要な場合を除いて、ウィンドウ全体を無効にしないでください。変更された領域のみを無効にするようにしてください。また、BeginDeferWindowPos
子ウィンドウのコレクションの位置を同時に更新する場合は、この関数を使用する必要があります。