关于InvalidateRect(...)和GetClipBox(...)
GetClipBox取得的不是可见区,而是可更新的区域,好像又叫无效区域。就是只有在这块区域作图才是会显示的。
InvalidateRect(...)则是将一块区域设置为上面说的无效区域。InvalidateRect(...)之后系统会在适当的时候发出WM_PAINT消息启动重绘调用OnDraw(),在没有经过优化的情况下,OnDraw中的肯定是都执行了,包括一些不在无效区域(可更新区域)的作图,只是不在无效区域(可更新区域)的作图操作实际没有显示,这个过程怎样解释呢,难道是它判断不在该区域就不画了吗?画无非就是让显示器打点。画与不画的效率差距有多大?如果不大的话,那么我大可以使整个窗口全部无效,然后OnDraw中的操作如数执行。我知道这两者的区别是防止闪烁,但真的仅仅只是这样而不是效率上有很大差别吗?请各位大哥指教,包括我理解的有什么不对的,谢谢