`

关于刷新

 
阅读更多
BOOL InvalidateRect(

  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。

 

invalidateRect:  该函数向指定的窗体更新区域添加一个矩形,然后窗口客户区域的这一部分将被重新绘制。 相当于让当前的这个窗体被某些windows 遮挡一下,这样就会

 

分享到:
评论

相关推荐

    刷新按钮图片

    在“刷新按钮 图片”的描述中,我们可以推测这是一个关于刷新按钮的图形资源,可能是PNG、JPG或SVG等格式,用于网页、应用程序或桌面软件的界面设计。 2. **颜色与风格**:按钮的颜色应与整体界面设计保持一致,...

    火山安卓高级刷新容器刷新加载演示例程.rar

    【标题】"火山安卓高级刷新容器刷新加载演示例程.rar" 涉及的是一个针对Android平台的开发示例,具体来说是关于刷新加载技术的应用。在移动应用开发中,刷新加载是用户界面(UI)设计的一个关键部分,特别是在处理...

    Gallery分页加载和刷新加载

    关于刷新加载,也就是下拉刷新功能,`Gallery`控件本身并不支持。通常我们会在顶部添加一个可滑动的刷新指示器,如`SwipeRefreshLayout`,但这与`Gallery`控件冲突,因为两者都支持滑动操作。一个可能的解决办法是...

    自定义下拉刷新

    标签"refresh"表明这是关于刷新机制的知识点,无论是在Android原生控件中,还是在自定义控件中,刷新机制都是移动应用中不可或缺的一部分,尤其是在处理动态数据流和实时更新的应用场景下。 总结一下,实现自定义...

    易语言刷新桌面源码.zip易语言项目例子源码下载

    关于刷新桌面功能,这通常是操作系统级别的任务,通常涉及Windows API调用。在易语言中,我们可以使用API命令来实现这一功能。例如,可以调用“UpdateWindow”或“RedrawWindow”等API函数,这些函数负责更新指定...

    刷新代码,刷新代码刷新代码

    以上是关于网页自动刷新和跳转的一些常用方法和技术要点。这些技术可以应用于多种场景,如定时刷新数据、页面跳转等。在实际应用中,开发者可以根据具体需求选择合适的方法来实现自动刷新或跳转功能。需要注意的是,...

    关于页面局部刷新例程

    本篇将深入探讨“关于页面局部刷新例程”的相关知识点。 首先,我们需要理解什么是局部刷新。局部刷新,又称为局部更新或异步更新,是指在不重新加载整个网页的情况下,只更新页面的某一部分内容。这种技术在现代...

    JS关于刷新页面的相关总结

    很多程序员无论是新手还是老的程序员都避免不了关于JS刷新页面的相关内容,在本文中我们整理了软件开发网总结的关于JS页面刷新的相关重要知识点文章,一起来跟着学习下。 JS刷新当前页面的几种方法总结 reload 方法...

    自动刷新网页专用工具软件

    3. 网页自动刷新监控工具简介.htm - 这可能是关于软件功能和用法的详细说明,包括如何配置和使用自动刷新功能。 4. 安装升级必读.html - 提供了安装和升级软件的具体步骤和建议,确保用户正确地安装或更新软件。 5. ...

    点击刷新当前页

    标题“点击刷新当前页”指的是在网页浏览过程中,用户通过点击特定按钮或使用快捷键来更新页面内容的操作。这一功能广泛应用于各种浏览器,包括...如果你需要关于这个文件的具体帮助,记得分享文件内容以便进一步分析。

    安卓下拉上拉刷新相关-listView下拉刷新上拉刷新带阻尼效果.rar

    "JavaApk源码说明.txt"文件可能包含了关于源码的简要说明,包括如何导入项目、依赖关系、关键类的解释等,这对于初学者理解和使用这些代码至关重要。而".url"文件可能是指向更多类似资源或教程的链接,可以帮助...

    下拉刷新带进度

    `ListViewDemo-master`这个文件名可能是一个GitHub仓库的克隆,暗示了这是一个关于ListView下拉刷新的开源项目。开发者可能在这个项目中实现了自定义的下拉刷新头部,包含了进度环的动画和逻辑。通常,这样的项目会...

    IE自动刷新脚本-ChinaBUG

    关于VBScript的自动刷新脚本,它的基本原理可能包括以下部分: 1. 创建一个定时器对象(Timer),设置定时时间间隔,例如每30秒或1分钟。 2. 编写事件处理函数,当定时器触发时,调用浏览器的刷新方法(如 `...

    c#系统托盘图标刷新类

    `Readme.txt`文件通常包含关于项目的基本信息,如使用方法、注意事项等。在这个案例中,它可能提供了如何在项目中集成`TaskBarUtil.cs`类的说明,以及如何调用其方法来刷新系统托盘图标。 总结一下,`c#系统托盘...

    treeview 局部刷新问题

    综上所述,"treeview 局部刷新问题"是一个关于优化Web应用性能和用户体验的关键点,涉及到数据管理、DOM操作和前端库的使用。通过有效的方法和技术,我们可以确保在数据发生变化时,只更新必要的部分,从而提供更...

    Android listView下拉刷新上拉刷新带阻尼效果-IT计算机-毕业设计.zip

    这个源码实例不仅仅是关于Android,也是计算机科学实践的一部分。它涉及到数据结构(如列表的存储和显示)、用户界面设计、事件驱动编程、动画处理等多个计算机科学领域的知识。 综上所述,这个"Android listView...

    MJReFresh_动画刷新案例

    【标题】"MJReFresh_动画刷新案例"是关于iOS应用开发中实现表格视图(UITableView)下拉刷新功能的一个示例项目。这个项目主要基于MJRefresh开源库,该库为开发者提供了丰富的动画效果和易用的API,使得在iOS应用中...

    安卓下拉上拉刷新相关-android-PullRefreshLayout高仿知乎下拉刷新.zip

    在"JavaApk源码说明.txt"文件中,可能会有一些关于如何编译和运行项目的说明,以及代码中可能存在的问题和注意事项。而"下载更多打包源码~.url"可能是一个链接,指向更多类似的Android开发资源。 总的来说,这个...

    网页自动刷新工具.rar

    以下是一些关于网页自动刷新的知识点: 1. **HTTP请求**:网页刷新涉及到HTTP协议,每次刷新都发送一个GET请求到服务器,获取新的网页内容。刷新频率过高可能会对服务器造成压力,所以合理的刷新间隔是必要的。 2....

Global site tag (gtag.js) - Google Analytics