通知
すべてクリア
Topic starter
2002年10月3日 2:03 AM
よく理解できていないのですが
Invalidate(TRUE)は更新リージョンにクライアント領域全体の矩形を追加する
よって、クライアント領域全体を強制的に再描画する。
Invalidate(FALSE)は更新リージョンを変更しない
よって、背景は変更されずに残る?
なので描画させたい時にInvalidate(TRUE)を呼ぶわけですが、
Invalidate(FALSE)ってどんな時に使用しますか?
2002年10月3日 8:16 AM
Invalidate(TRUE); は、
更新リージョンが背景で塗りつぶされる -> 更新リージョンを再描画する
Invalidate(FALSE); は、
更新リージョンを再描画する
という手順で再描画が行われるはずです。
つまり、Invalidate(FALSE)は背景で一旦塗りつぶす必要が無い時に呼ぶわけです。
# 背景で塗りつぶす必要が無い場合は、
# CWnd::OnEraseBkgndをオーバーライドし、
# 背景で塗りつぶさないようにしてしまう方法もあるので、
# Invalidate(FALSE)が使われる場面はあまり無いのではないかと思います。