InvalidateRect

InvalidateRectは、指定された矩形領域を無効領域とし、それによって画面の更新を要求するWindowsAPI・・・。

InvalidateRect 関数

WM_PAINTの頁で、無効領域が発生するときの条件について書いたとおもうが、意図的に無効領域を発生させることもできる・・・。その時に使うのがInvalidateRect・・・。

マウスの左ボタンが押された時に画面を更新するようにしてみる・・・。

WM_LBUTTONDOWNが発生した時(マウスの左ボタンが押された時)、InvalidateRectで更新を要求する・・・。
第2引数にはRECT構造体で矩形の座標を指定するが、NULLを指定するとクライアント領域全体(ウィンドウの白いところ全体)が更新対象となる・・・。今回は全体なのでNULL・・・。
第3引数をTRUEにすると、背景も更新対象となる・・・。FALSEにすると背景を削除しないので、以前のテキストの残骸が残っていたりするので今回はTRUE・・・。

この部分は変わらない・・・。ここに来ると、iCountが1つ増えて、それが表示される・・・。

実行すると、

f:id:BG1:20150327104402p:plain

最初は1回目なので1・・・。
左クリックすると、

f:id:BG1:20150327104508p:plain

1つ増えて2に・・・。
さらに2回左クリックで、

f:id:BG1:20150327104542p:plain

4になる・・・。
左クリックで画面が更新されてるのがわかる・・・。

Sample/InvalidateRect.cpp at master · bg1bgst333/Sample · GitHub