如何设置窗口立即刷新显示
来源:互联网 发布:阿里云个人网盘 编辑:程序博客网 时间:2024/06/08 00:54
一、引言
遇到一个问题:
清理缓存的时候,当缓存大于200M的时候,用户退出程序会显示一个对话框,这个对话框会提示用户清理缓存,当用户点击了“清理”按钮的时候,则会隐藏按钮并且提示用户“当前正在清理中…”的字样,当清理完毕后,则会显示“清理完成”;而如何让界面及时的显示“正在清理中…”的字样则是问题所在
二、解决
这个问题的根本原因是什么呢?
很简单,就是没有及时通知windows重绘窗口;那如何通知windows重绘窗口呢?是不是只需要设置当前窗口无效就可以了呢?这里参考VC窗口刷新InvalidateRect和UpdateWindow:
重画函数InvalidateRect、Invalidate、UpdateWindow、RedrawWindow:
InvalidateRect(部分区域)和Invalidate(整个窗口)仅仅是用来设置无效区域,但是并不重绘窗口。UpdateWindow检查窗口有无无效区域,如果有,则立即发送一个WM_PAINT消息给窗口并立即重画。
RedrawWindow相当于先调用InvalidateRect,紧接着又调用UpdateWindow,此外还提供了一些前两者没法做到的功能。如果不调用InvalidateRect就调用UpdateWindow,那么UpdateWindow什么也不做,因为没有无效区域。如果调用InvalidateRect后不调用UpdateWindow,则系统会自动在窗口消息队列为空的时候,系统自动发送一条WM_PAINT消息。
答案已经非常明显了,要向让窗口立即刷新显示,就必须设置无效后立即刷新,否则,windows就在消息队列为空的时候自动刷新。这样问题解决!
- 如何设置窗口立即刷新显示
- 如何设置窗口立即刷新显示
- perl如何立即刷新文件缓冲区
- 强制刷新窗口并能立即生效的办法
- GPUpdate 刷新组策略设置(使组策略立即生效)
- PL/SQL如何设置 窗口列表默认显示
- PL/SQL如何设置 窗口列表默认显示
- springmvc+tomcat图片上传后如何立即刷新出来
- 设置窗口居中显示
- javascript如何刷新父窗口
- 如何关闭弹出窗口,刷新父窗口?
- 立即刷新桌面
- 立即刷新组策略
- 如何设置弹出窗口
- 如何设置窗口居中
- 如何刷新弹出窗口父窗口,关闭弹出窗口
- VS编译器中设置 输出窗口 只显示error,不显示warning 要如何配置
- 拍完立即回显照片【如何设置】
- centos7中yum安装ntfs-3g
- P1064 金明的预算方案【2006提高】(背包)
- 解决双系统下完全删除Ubuntu系统
- 关于微信红包的作业题的解决思路
- Shiro概述
- 如何设置窗口立即刷新显示
- Android Studio 单元测试之简单版
- 95后实习生的远程办公体验(asp.net mvc-C#技术栈)
- thinkphp 中__construct与_initialize()的区别
- JS小数精度加减法
- 小白学分布式程序开发8-二阶段提交的缺点
- JAVAScrip 介绍 DOM对象 BOM对象
- Bellman-Ford(最短路)
- 【数学分析】Codeforces Round #426(Div.2)C[The Meaningless Game]题解