サイズが変更されるダイアログがあります。また、WM_ERASEBKGND 呼び出し (現在は FillSolidRect への単純な呼び出し) に応答してペイントするカスタム背景もあります。
ダイアログのサイズを変更すると、途方もないちらつきが発生します。ちらつきを減らすために、すべての子ウィンドウを列挙してクリッピング領域に追加します。これで少しは改善されたようです。今では、すべての子コントロールが再描画されるときにちらつきがほとんど明らかになっています。
サイズ変更中にダイアログがちらつかないようにするにはどうすればよいですか? ダブルバッファリングが役割を果たさなければならないと思いますが、子コントロールを持つダイアログでそれを行う方法がわかりません(すべての子コントロールをオーナー描画などにしないでください)。
純粋な Win32 ベースのソリューションは歓迎されますが、私は C++ (.NET ではない) と MFC を使用していることに注意してください :)
注:私が試したものの、うまくいかなかった(理由がわからない)ことの1つは次のとおりです。
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.FillSolidRect(rect, backgroundColor);
pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);