What of these should I use in InvalidateRect to refresh my window? And why?
The window rect includes the non-client area, i.e. the window borders, caption bar etc. The client rect does not.
GetWindowRect
returns a rect in screen coordinates whereas GetClientRect
returns a rect in client coordinates.
InvalidateRect
receives a rect in client coordinates. If you want to invalidate your entire client area, then pass NULL
to InvalidateRect
. You could pass in the rect returned by GetClientRect
, but it is far simpler and clearer to pass NULL
.