Control.Refresh Control.Invalidate 和 Control.OnPaint之间的联系和区别

1、Control.Invalidate会放一个WM_PAINT消息到消息队列,当Control处理到该消息的时候,就调用OnPaint。

2、Control.Refresh相当于以下两行:
Control.Invalidate(true);
Control.Update();

3、Control.Update会搜索消息队列,如果找到WM_PAINT,就把它取出,‘直接‘调用OnPaint。

因此,Invalidate告诉系统当前窗口要求重画,但不要求立即执行,那些排在WM_PAINT前面的消息会先处理。
Refresh则立刻重画窗口。

时间: 2024-08-29 23:11:44

Control.Refresh Control.Invalidate 和 Control.OnPaint之间的联系和区别的相关文章

Method and system for implementing mandatory file access control in native discretionary access control environments

A method is provided for implementing a mandatory access control model in operating systems which natively use a discretionary access control scheme. A method for implementing mandatory access control in a system comprising a plurality of computers,

UNIX网络编程-recv、send、read、write之间的联系与区别

1.read ----------------------------------------------------------------------- #include <unistd.h> ssize_t read(int fd, void *buf, size_t nbyte); ----------------------------------------------------------------------- read()函数是负责从fd中读取内容.当读成功时,read(

&lt;Java中的继承和组合之间的联系和区别&gt;

1 //Java中的继承和组合之间的联系和区别 2 //本例是继承 3 4 class Animal 5 { 6 private void beat() 7 { 8 System.out.println("心胀跳动..."); 9 } 10 public void breath() 11 { 12 beat(); 13 System.out.println("吸一口气,吐一口气,呼吸中..."); 14 } 15 } 16 //继承Animal,直接复用父类的bre

JS在IE和FireFox之间常用函数的区别小结

1.event.srcElement 复制代码 代码如下: //srcElement只能在IE下使用target是FireFox使用的,下面是兼容性写法 var obj = e.srcElement ? e.srcElement : e.target; 2.e.originalEvent.x 复制代码 代码如下: // e.originalEvent.x 只能在IE下使用,FireFox只能使用e.originalEvent.layerX,下面是兼容性写法 var positionX = e.o

Linux发行版及各发行版之间的联系与区别

Linux发行版主要有三个分支:Debian.Slackware.RedHat. (1)Debian:(以社区的方式运作) 1..Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器: 2.Linux Mint:基于Debian和Ubuntu的Linux发行版, 致力于使桌面系统对个人用户每天的工作更易用,更高效, 其目标是提供一种更完整的即刻可用体验. (2)Slackware: 1.suse:基于Slackware二次开发的一款Linux,主要用于商业桌面.服务器

Do you really know what means initialization? “初始化 定义 赋值” 之间的联系与区别

"初始化 定义 赋值" 之间的联系与区别 本来很早之前就想写个blog,说说这三个家伙的区别和联系,三者之间各种联系,很难比较清楚的讲明白,感觉当时好像分析思路还不够"完整".今天遇到别人抛出来的一个问题.根本的问题是和初始化和赋值有关系,于是留下这个blog. #include <stdio.h> struct _ANIBMP { int FirstNumber; int Count; }ANIBMP; ANIBMP Swallow = {4,5};

进程与线程之间的关系和区别 及 CPU调度

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程. (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源. (3)处理机分给线程,即真正在处理机上运行的是线程. (4)线程在执行过程中,需要协作同步.不同进程的线程间要利用消息通信的办法实现同步.

C# 多线程、异步、同步之间的联系与区别

C# 多线程.异步.同步之间的联系与区别 假设这样一个例子: 我想炒五样菜,但是只有两个炉子可以用,只能同时炒两样. 炉子就是线程,那同步跟异步怎么解释比较好? 同时炒是不是算异步? 如果是的话,那什么情况算同步? 其结果是: 假如5个菜分别是A,B,C,D,E 你有两个炉子 只能同时炒A跟B 所以剩下的CDE只能等AB炒完了才能开始 这个等待就是同步 我们叫做阻塞 即这个时候你只能做AB这两个菜 假如你还有一台咖啡机, 你在炒AB的时候 把咖啡豆跟水放到咖啡机里打开开关 你就可以不用去管它了我

常见Linux的发行版有哪些?并描述不同发行版之间的联系与区别。

一.按系列罗列linux的发行版,并描述不同发行版之间的联系和区别 Linux发行版=Linux内核+商业软件 linux的发行版: RedHat.Fedora.suse.红旗.debian.Ubuntu.centos 不同发行版之间的联系和区别: Red Hat ,是redhat自己的发行的企业版,是redhat的一个重要节点. Fedore是一款基于linux的操作系统,也是一组维持计算机正常运行的软件集合.由红帽公司赞助. suse linux,针对个人用户. 红旗linux的发行版,包括