热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MFC程序运行时间长后画面会散乱,甚至会把屏幕摸成白色,求救!

最近做一个考勤系统,在vs2010中完成,在xp系统上运行,程序长时间运行后画面会变散乱,考虑过时内存泄露的原因,但是就算运行了一天,内存最多增至十几M,对系统没什么影响吧。具体点,一个编辑框中做了一
最近做一个考勤系统,在vs2010中完成,在xp系统上运行,程序长时间运行后画面会变散乱,考虑过时内存泄露的原因,但是就算运行了一天,内存最多增至十几M,对系统没什么影响吧。具体点,一个编辑框中做了一个电子时钟,就是这个编辑框会跑到屏幕最上边。实在不知道什么原因造成的,又遇到过的朋友,给点建议啊。谢啦

5 个解决方案

#1


界面 基本上就是GDI资源泄露。
开开你的程序,打开任务管理器,看看GDI资源涨不涨

#2


耗尽GDI资源应该,画图时泄漏资源句柄

#3


电子时钟相关资源泄露 

#4


前几楼的说了问题所在,我也遇到过同样的问题,说得简单点就是变乱的部分界面你没有重绘。画出图来过后你要保存图像的位图句柄,也就是图像在内存中的映象,要有更改的话所有需要改变的部分都要重绘,比如时钟指针的移动,既要画出新指针,也要擦掉旧指针。占内存多肯定是内存泄漏,举一个简单的例子,TextOut函数输出字符串,如果用TextOut(x, y, "abc");重复使用就会造成泄漏,因为"abc"是常量驻在内存,不停使用就不信产生。对这个问题,你可以先定义一个指针变量把字符串地址保存下来,以后每次都用这个指针。这是在我刚开始写程序的时候遇到过的,好久不用VS不知道新版本有没有对这个问题处理过。画图出是一个道理,而且图像更占内存,图像句柄不保存就会成为野指针,多次画图就不断增加内存使用量,所以申请了内存就保存下来,以后都在这里修改。

#5


问题已经解决,是因为我用了Font ,没有释放的原因,结果越积越多,最后导致这样的后果,谢谢各位!

推荐阅读
author-avatar
蜡烛8882007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有