关于Invalidate函数(Invalidate(TRUE )闪屏问题)
来源:互联网 发布:淘宝网的图片 编辑:程序博客网 时间:2024/05/09 10:48
在論壇看见他们在讨论这样的问题,看见一大批人说,很少人说到重点,如果不是工程很大,绘制效率不会慢的
所以效率方面,很多时候不是你要考虑的,现在对此进行解说。
原型:
void Invalidate( BOOL bErase = TRUE );
参数: bErase 决定了是否要在WM_PAINT消息前发送WN_ERASEBKGND
//下面解析屏幕闪烁的原因。
如果使用Invalidate();
则默认为TRUE,在刷新的的时候会发送WN_ERASEBKGND,导致整个窗口背景刷除,再重新加载。
就算你用了双缓冲,整个窗体画面也会有闪烁,所以你可以调用Invalidate(FALSE);来重新刷新画面。
也可以通过添加WN_ERASEBKGND事件,在里面直接return TRUE;那就不会闪烁了。另外,
虽然这些操作都可以使你的图片操作不产生闪烁,但是控件可还是会闪烁的,还需要设置窗口为
WS_CLIPCHILDREN属性(代码为:ModifyStyle(0,WS_CLIPCHILDREN); )
这就是很多熟手告诉你为什么直接return TRUE,也是一种方法的原因,其实最根本的原因是你使用
了Invalidate(TRUE )而不是Invalidate(FALSE ),此外,我说这个之前,你所以之前的绘制是使用双缓冲的。
1 0
- 关于Invalidate函数(Invalidate(TRUE )闪屏问题)
- Invalidate(TRUE)的闪屏问题
- MFC Invalidate闪屏问题
- 关于Invalidate()
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- Invalidate()函数
- 函数invalidate
- Invalidate()函数 .
- Invalidate()函数
- invalidate函数
- Yii在控制器中对视图js的控制
- 值类型与引用类型下的输入实例对比
- 设计模式之状态模式(State)摘录
- vs2010创建web服务以及引用服务详细步骤
- linux下 firefox安装flash插件
- 关于Invalidate函数(Invalidate(TRUE )闪屏问题)
- 创建各种Ajax引擎的代码
- 从技术到管理
- 手机网页web app 为何你的图片不清晰 模糊?
- 搭建Android开发环境之——Android4.0.3, 4.1, 4.2, 4.3, 4.x,及升级 ADT(22.0.5)和SDK(22.x)
- PLSQL Developer安装
- a标签的css样式设计
- java并发学习
- Java开发环境的基本设置