HWND hWnd, // 窗口句柄
CONST RECT* lpRect, // 矩形区域
BOOL bErase //是否擦除背景
);
InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效。InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。
void Invalidate( BOOL bErase )执行之后调用函数的次序为:
...OnPaint()->OnPrepareDC()->OnDraw()
所以只是刷新在OnPaint()和OnDraw()函数中的绘图语句。其它地方没有影响。
Invalidate()标记一个需要重绘的无效区域,并不意味着调用该函数后就立刻进行重绘。类似于PostMessage(WM_PAINT),需要处理到WM_PAINT消息时才真正重绘。如果您Invalidate()之后还有其他的语句正在执行,程序没有机会去处理WM_PAINT消息,只有当函数执行完毕后,消息处理才得以进行。
Invalidate()只是放一个WM_PAINT消息在队列里,不做别的,所以只有当当前函数返回后,进入消息循环,取出WM_PAINT,才执行OnPaint(),所以不管Invalidate放哪里,都是最后执行的。
InvalidateRect(hWnd,&rect,TRUE);向hWnd窗体发出WM_PAINT的消息,强制客户区域重绘制。rect是你指定要刷新的区域,此区域外的客户区域不被重绘,这样防止客户区域的一个局部的改动,而导致整个客户区域重绘而导致闪烁,如果最后的参数为TRUE,则还向窗体发送WM_ERASEBKGND消息,在客户区域重绘之前先重绘背景。
UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。
相关推荐
收集了很多关于刷新页面的方法,分为自动刷新和手动刷新两种,当前页面的刷新和父页面的刷新等
JS关于刷新父页面例子:javascript 弹出页面点击确定,刷新父页面 仔细分析学习
关于页面局部刷新例程
很多程序员无论是新手还是老的程序员都避免不了关于JS刷新页面的相关内容,在本文中我们整理了软件开发网总结的关于JS页面刷新的相关重要知识点文章,一起来跟着学习下。 JS刷新当前页面的几种方法总结 reload 方法...
这是一个关于刷新bios的方法汇总 1. 开机出现ASUS标志的时候不断地点击F4键进入Easyflash的界面:
关于ajax 和timer组成的无刷新操作的web小程序
关于java的无刷新上传技术资源整合提供了很大的方便
关于struts2里用javascript刷新window.showModalDialog的父页面
主要关于ASP.NET界面刷新的方法附上代码!
在本篇文章里小编给大家整理的是关于vue倒计时刷新页面不会从头开始的解决方法,需要的朋友们参考下。
这是一个判断网络是否可用的一个小demo,同时还运用了原生的刷新控件,进行页面的刷新再次判断当前是否网络可用。代码简单,可以用来做参考做判断是否有网络可用,比如登录的时候判断网络是否可用。
这个demo 主要是分享给用到下拉刷新的同学的,非常好用 ,主要分为三个部分:listview scrollview 和webView的下拉刷新可以说是涵盖了所有关于下拉的应用,我只想说绝对值2分的了!
关于页面刷新的JavaScript脚本,可以在页面里刷新。
关于Ajax的Timer组件的应用,不刷新页面,时间显示走动,省去了繁琐了JS代码,实现不刷新页面时间的变化。格式为(2011年08月16日 星期二 13:42:20 PM),附带效果图。
此文档是对关于子窗口关闭刷新父窗口的总结。
关于如何解决windows编程中图形刷新的问题,大家好好看看研究研究啊,有助与大家思维
最近在写微信小程序遇到了图表相关的问题,项目要求是要用柱状图,同时由于数据较多,需要将一组数据用多个图表表示,而且还要实现动态刷新数据。 关于echarts的下载和引入不多加介绍。 效果图 这里只取一部分数据做...
关于用Ajax验证用户名的实例使用Ajax后用户输入用户名后不需要刷新页面
关于团购网站倒计时js,能有效防止恶意刷新