Invalidate(FALSE)ってどんな時に使用しますか?

[戻る]
ナオーバ 2002/10/03(木) 02:03:41
よく理解できていないのですが
Invalidate(TRUE)は更新リージョンにクライアント領域全体の矩形を追加する
よって、クライアント領域全体を強制的に再描画する。
Invalidate(FALSE)は更新リージョンを変更しない
よって、背景は変更されずに残る?


なので描画させたい時にInvalidate(TRUE)を呼ぶわけですが、
Invalidate(FALSE)ってどんな時に使用しますか?

MASATO [E-Mail] [HomePage] 2002/10/03(木) 08:16:20
Invalidate(TRUE); は、
更新リージョンが背景で塗りつぶされる -> 更新リージョンを再描画する

Invalidate(FALSE); は、
更新リージョンを再描画する

という手順で再描画が行われるはずです。
つまり、Invalidate(FALSE)は背景で一旦塗りつぶす必要が無い時に呼ぶわけです。

# 背景で塗りつぶす必要が無い場合は、
# CWnd::OnEraseBkgndをオーバーライドし、
# 背景で塗りつぶさないようにしてしまう方法もあるので、
# Invalidate(FALSE)が使われる場面はあまり無いのではないかと思います。

古いスレッドには追加発言できません。