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

推荐订阅源

博客园 - 【当耐特】
云风的 BLOG
云风的 BLOG
罗磊的独立博客
C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Blog — PlanetScale
Blog — PlanetScale
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
I
InfoQ
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
B
Blog RSS Feed

博客园 - 指南针

EpCloud开发日志 为服务创建安装程序 winform 通过WCF上传Dataset数据 opcrcw.da.dll 和.net 4.0 .net中线程同步的典型场景和问题(1) 如何取消后台线程的执行 python中使用汉字 Ext对基本类型的扩展 OWC ChartSpace控件的使用 OWC PivotTable的使用方法 Sql Server 生成数据透视表 wince5.0 key 修改IP地址后,原来的连接还有存在吗? .Net精简框加下子类化控件 Wince5.0中修改IP地址需不重启即可生效 Extjs combobox Windows workflow中的IEventActivity接口 使MSSql Server 视图可更新 javascript中的基本数据类型
Window下减少重绘的方法
指南针 · 2009-06-05 · via 博客园 - 指南针

这是一个老问题,网上也有很多解决方案。最近自己做的项目又重新折腾了一番,写下来以备遗忘。

1.  使用双缓冲显示的方式

          在.net精简框架下,可以使用Image对象做缓冲。绘图的时候先绘到缓冲中。代码如下:

Code

2.  只更新需要更新的区域,在处理Paint事件时,只画失效的部分。代码如下:

Code

3.  告诉操作系统不要擦除背景颜色,这是显示出现闪烁的重要原因,因为每次控件重绘之前,系统默认会使用背景色填充背景,但是背景色通常和真正显示的内容反差比较大,所以出来的效果就会一闪一闪的。要处理这个问题,需要自己处理WM_ERASEBKGND消息,并返回1。这样操作系统将不会自动重绘背景。在.net精简框架中处理windows消息的方法参见另一篇博文".Net精简框加下子类化控件"。