Invalidate(FALSE)ってどんな時に使用しますか? – プログラミング – Home

通知
すべてクリア

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


ナオーバ
 ナオーバ
(@ナオーバ)
ゲスト
結合: 23年前
投稿: 187
Topic starter  

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

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


引用解決済
トピックタグ
MASATO
 MASATO
(@MASATO)
ゲスト
結合: 23年前
投稿: 53
 

Invalidate(TRUE); は、
更新リージョンが背景で塗りつぶされる -> 更新リージョンを再描画する

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

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました