您的位置:首页 > 大数据 > 人工智能

不要在OnPaint()中使用Invalidate()来刷新窗口

2013-12-23 00:38 351 查看
我从CEdit类派生了一个子类CMyEidt,然后在CMyEidt::OnPaint()中绘图,并使用了Invalidate()来使编辑框进行重绘。但却导致CPU的占用率很高,并且,如何没有采用双缓冲机制,图片还会不停的闪烁。如下图



注释掉Invalidate()后CPU占用恢复正常:



但是我在主对话框中调用Invalidate()却不会导致CPU出现这种情况,这是为什么?



不知道为什么会这样。。

最好不要在OnPaint()中使用Invalidate()。Invalidate()会使用窗口发生重绘

不要在OnPaint()中进行一些会占用软多CPU资源的操作,如打开文件,可以把这些操作放到InitXX()中。

作者:http://blog.csdn.net/lp310018931
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: