トップ > メモ
Win32APIプログラミング - ある条件下でInvalidateRect関数の第三引数をTRUEにすると以降描画されない。
要するにやりたいことは一度画面をまっさらにして
再描画したいということです。
ただ単に見落としていた自分が悪いのかもしれませんが、
描画するときのデバイスコンテキストハンドルを取得するときに
GetDC関数を取得して描画しているとこの状態になります。
まとめると大体こんな感じでしょうか。
・・・InvalidateRect()→WM_PAINT→GetDC()→ReleaseDC()・・・
まぁ、なぜこうなるのかはよくわかりませんが
(というか、ただ単にこういう仕様なんだと思う)
正常に動く方法を書きます。
・・・InvalidateRect()→WM_PAINT→BeginPaint()→EndPaint()・・・
使用する関数を変更するだけです。
このことはあまり本とかWebページを探しても書いてなかったように見受けられます。
ただ、MSDNにはしっかりと「TRUEを指定すると、BeginPaint 関数を呼び出したときに背景が消去されます。」
と言う記述があるので、見落とした自分が悪いわけです。
以上、今回はこれで40分ぐらい悩みました。
一覧へ戻る
トップに戻る
作成日時:2005年 01月 08日 21時 19分 29秒