怎样在时钟程序中添加防止屏幕闪烁的代码,vc++ondraw函数中添加

 我来答
bhtzu
2014-12-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4206万
展开全部

防止窗口闪烁,不是添加什么代码的问题,而是需要优化代码。主要注意一下几个方面:

  1. 优化OnDraw中的代码,给OnDraw函数“减肥”,尽量减少每次重绘的事务,将不必要代码尽量放在只调用一次的地方。

  2. 减少对触发重绘的频繁和不合理调用。去掉不必要的Invalidate和UpdateWindow调用,使用InvalidateRect以及合理的计算区域 代替 Invalidate 这个整体重绘函数。

  3. 当重绘代码(OnDraw代码)过于耗时过于复杂的时候,应考虑使用双缓冲技术,通过内存DC优化解决闪烁问题,不过一般对于时钟程序来说,这个是没有很大必要的。

追问
但是我的里面没有你说的invalidate和update的调用。那应该怎么修改?
追答
没代码,我怎么知道怎么修改呢。。。
不触发重绘,你之前的显示如果清除的?发一下定时器OnTimer的代码和OnDraw的代码上来。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式