相当奇怪的小问题:出现屏保后我的软件界面就会死掉了…………急……分不够另开帖加啊

modaoshi3002 2007-02-12 12:00:23
请问各位大哥这是怎么回事啊??
我在我的软件里有很多
s1.SetBitmap( ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_OPEN)) );

软件使用时,只要一出现屏保,关闭后,有80%的几率,有很多一部分用setbitmap加上去的图片就没有了,再重新setbitmap也没用,只能把软件重新启动。

各位帮忙啊,我只能送100分,不够我再开帖加啊~~~~~~~~
...全文
358 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dazedase 2007-02-12
  • 打赏
  • 举报
回复
对于::LoadBitmap出来的hBitmap需要DeleteObject(hBitmap);
内存DC要DeleteDC
new出来的指针要Delete
在OnDraw、OnPaint等重绘过程中尽量少new或Create资源,经常使用的资源设成全局,启动时创建,重绘时调用,退出时销毁
dazedase 2007-02-12
  • 打赏
  • 举报
回复
很可能是你的界面重绘存在资源或内存泄露.
你可以试验用其它程序窗口不断挡住你的程序界面再移开,看看会不会死掉
东文-桑晨 2007-02-12
  • 打赏
  • 举报
回复
如果是静态的图片,直接使用Picture控件,然后把你的bmp图片导入资源里面就可以了
dazedase 2007-02-12
  • 打赏
  • 举报
回复
你要把CFont * f定义成全局的,在析构中再f->DeleteObject();,s1中的位图hbitmap也定义成全局,OnCreate时LoadBitmap,OnDestroy时DeleteObject(hBitmap);
modaoshi3002 2007-02-12
  • 打赏
  • 举报
回复
谢谢happyness44(风雨人生)
我的s1.SetBitmap( ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_OPEN)) );
也是在OnCreate中进行的
modaoshi3002 2007-02-12
  • 打赏
  • 举报
回复
多谢dazedase的持续关注,不胜感激啊
我也在找是不是GDI资源泄漏,发现在我的一个继承自CWnd的类中使用了CFont
我是在OnCreate中用的
CFont * f;
f = new CFont;
f->CreateFont(.......);

s2.SetFont(f); //s2是在这个CWnd上的一个CStatic,

我如何销毁这CFont对象呢,如果在这里(OnCreate函数中)f->DeleteObject();的话
就没意义了啊。

还有,上面的s1也是一个CStatic,用来放一张位图,也需释放吗?改怎么释放呢?

谢谢啊
happyness44 2007-02-12
  • 打赏
  • 举报
回复
LoadBitmap不要在OnPaint中进行
dazedase 2007-02-12
  • 打赏
  • 举报
回复
CPaintDC是不用,其它如果的你自己创建的就需要了

s1.SetBitmap( ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_OPEN)) );
不要写在OnPaint中,不知道你的s1是个什么控件,如果是按钮等派生类则有可能是s1本身的问题,::LoadBitmap会创建一个hbitmap,有可能s1自己没有把它DeleteObject

主对话框的非客户区也变的模糊不清了:如果不是自绘的话有可能是GDI资源泄露,有很多Object没有DeleteObject
modaoshi3002 2007-02-12
  • 打赏
  • 举报
回复
多谢dazedase(什么也不懂、什么也不会、我能干什么?)
我是在OnPaint中画的图,
CPaintDC不是不用delete的吗,

s1.SetBitmap( ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_OPEN)) );
这句我也是在书上抄的好像也不用释放句柄啊

现在问题更加严重了,界面本身是不会死掉,就是这个LoadBitmap出来的图会没有,
而且主对话框的非客户区也变的模糊不清了……

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧