惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
博客园_首页
美团技术团队
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
J
Java Code Geeks
T
Tailwind CSS Blog
Jina AI
Jina AI
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 鬼画符

如何启动绿色迷你SQL2000服务 我要翻译《Think Python》- 006 第四章 学习案例:接口设计 我要翻译《Think Python》- 005 第三章 函数 我要翻译《Think Python》- 004 第二章 变量, 表达式和语句 我要翻译《Think Python》-003 第一章 编程之道 我要翻译《Think Python》-002 贡献列表 & 目录部分 我要翻译《Think Python》 - 001 序言部分 我要翻译《Think Python》 - 开篇申明 ORA-12514 解决方法 英语邮件怎么写 读书笔记《小狗钱钱》 Words to Live by 生气的时候不要做任何决定 好的技术不一定能给你带来财富,但是好的工具一定可以让你创造财富 Enterprise Library 学习笔记-01 声明:我还活着 如何获得别人的尊重-人格塑造 企业ERP自定义报表辅助系统 V1.0.0.9 自定义报表工具下载 For Oracle9i
Delphi Invalidate的用法
鬼画符 · 2011-10-11 · via 博客园 - 鬼画符

1、Invalidate介绍  void Invalidate( BOOL bErase = TRUE );
  该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口。视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnDraw来完成。参数bErase为TRUE时,重绘区域内的背景将被擦除,否则,背景将保持不变。
2、与UpdateWindow( )的区别
  UpdateWindow( )的作用是使窗口立即重绘。调用Invalidate等函数后窗口不会立即重绘,这是由于WM_PAINT消息的优先级很低,它需要等消息队列中的其它消息发送完后才能被处理。调用UpdateWindow函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。

Delphi中的代码

procedure TWinControl.Invalidate;
begin
  Perform(CM_INVALIDATE, 0, 0);
end;

这个方法会使窗口重绘。