开发者社区> double2li> 正文

刷新--MFC界面刷新函数比较

简介: 一:什么时候才会发生重绘窗口的消息?       当需要更新或重新绘制窗口的外观时,应用程序就会发送WM_PAINT消息。对窗口进行重新绘制。 二:Invalidate() -- RedrawWindow() -- UpdateWindow()三个函数有什么异同?       Invalidate()是强制系统进行重画,但是不一定就马上进行重画。
+关注继续查看

一:什么时候才会发生重绘窗口的消息?

      当需要更新或重新绘制窗口的外观时,应用程序就会发送WM_PAINT消息。对窗口进行重新绘制。

二:Invalidate() -- RedrawWindow() -- UpdateWindow()三个函数有什么异同?

      Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘。

     UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。

     RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C# 控件不刷新问题
/********************************************************************** * C# 控件不刷新问题 * 说明: * 当网络连接出问题的时候,希望C#控件能够自动更新界面上的控件。
822 0
C#WinForm程序不不在任务栏显示的处理方法
窗体不在任务栏上显示程序的窗体,c# Form提供了一个 属性值可以很好的解决这个问题 这个属性就是 ShowInTaskbar 在微软的官方声明格式为:  public bool ShowInTaskbar {  get; set; } 及可以通过这个属性来获取或设置一个值 这个属性值的默认值是true 就是要在任务栏上显示窗体,如果我们想不显示就直接在load事件中加上如下
1374 0
c# 刷新界面
引用:http://blog.csdn.net/deepwishly/article/details/5500051 这个问题也不知道难倒了多少C#豪杰。比起MFC的界面刷新,在WINFORM中来实现多线程刷新真是很痛苦,故写此文。
790 0
aspx页面中点击按钮传递给Silverlight,并且页面不刷新
function onSilverlightError(sender, args) { var ap...
593 0
+关注
double2li
一个在IT行业摸爬滚打的老司机
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载