mfc中控件绘制出错的问题

[复制链接]
查看11 | 回复4 | 2021-1-27 06:05:15 | 显示全部楼层 |阅读模式
我想用按钮做一个自动滚动显示图片的效果
使用了定时器+movewindow来改变控件的位置
然后一开始都还是在正常的,但是当定时器运行了324次的时候(我用一个变量记录运行的次数,发现每次都是这个值)
控件的绘制就出错了,所有按钮都显示不出来了,但是定时器仍然是在工作的
想问这是什么情况
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:05:15 | 显示全部楼层
看你的画图句柄等是否已经耗尽。查看进程的GDI资源等,画图不需要的时候要及时是否资源
回复

使用道具 举报

千问 | 2021-1-27 06:05:15 | 显示全部楼层
没有完整代码,看不出问题在哪,也可能是移动324次之后,绘制超出的窗口范围
如果不想发布代码,你可以检查每个API调用的返回值,看看是否有调用失败,如果调用失败,GetLastError或者失败代码
回复

使用道具 举报

千问 | 2021-1-27 06:05:15 | 显示全部楼层
检查是否资源泄漏的办法之一:
在任务管理器进程查看选择列里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
搜“GDI泄露检测”
回复

使用道具 举报

千问 | 2021-1-27 06:05:15 | 显示全部楼层
肯定是按钮显示图片的部分有问题
定时器和movewindow不会有啥错误
很多绘图句柄没释放。

宋世鹏宇宙信息网
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行