CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

关于CBitmap 的LoadBitmap

楼主livedeal(怀念)2006-09-14 13:06:56 在 VC/MFC / 基础类 提问

我现在要做一个一图放大小16倍的时候,一个点就要用一张小图来表示,颜色不同要用不同的小图  
   
  for(   i=0;i<height;i++)  
  {  
  for(   j=0;j<width;j++)  
  {  
  bitmap.LoadBitmap(IDB_BITMAP1+m_pBuff[i*width+j]-1);  
  bitmap.DrawTransparent(&mem,j*m_nZoom,i*m_nZoom,RGB(192,192,192));  
  }  
  }  
  可是放大,缩小,这样几次以后,就会反应很慢,出现卡到死机的问题,这个到底要怎么解决呢~  
  DrawTransparent这个函数是我自己写的,没有问题,循环里要只有bitmap.LoadBitmap(IDB_BITMAP1+m_pBuff[i*width+j]-1);也会出现一样的结果的```这样大量的loadbitmap是不是有问题的啊`???? 问题点数:100、回复次数:10Top

1 楼jun_01(无名小卒)回复于 2006-09-14 13:10:42 得分 30

1,你load之后没有释放,这样也许有问题  
  2,图片放大,那么一个点变成了数个点,你只要用原来的颜色填充就可以了,不用图片Top

2 楼snowbirdfly(专心搞好嵌入式~~~)回复于 2006-09-14 13:13:38 得分 40

这样几次以后,就会反应很慢,出现卡到死机的问题~  
  同意楼上,应该是申请的内存没有释放~~~  
  Top

3 楼cleverwyq(此人三无)回复于 2006-09-14 13:14:32 得分 10

DrawTransparent里面是不是有gdi资源没有及时释放  
  code看看Top

4 楼snowbirdfly(专心搞好嵌入式~~~)回复于 2006-09-14 13:17:51 得分 0

这样大量的loadbitmap是不是有问题的啊`????  
  这个应该没有问题~~  
  因为loadbitmap仅仅是从内存中载入位图,自身没有参与内存申请~~~  
  我觉得可能是你自己写的函数问题~~~Top

5 楼yjgx007(还不结帖?!听妈妈的话! http://www.geekclaw.com)回复于 2006-09-14 13:20:56 得分 20

每次drawtransparent后,bitmap.deletobjectTop

6 楼livedeal(怀念)回复于 2006-09-14 13:24:20 得分 0

snowbirdfly(专心搞好嵌入式~~~)   你都一个星了啊,我都好久没有来了,以前还和你一样的`~~  
  我这个是这样的,一个点是红色的话,放大的16以后,显示出来的是一张图,就不是单单的红了,循环里面,我只放了bitmap.LoadBitmap(IDB_BITMAP1+m_pBuff[i*width+j]-1);也是一样的~可放大10位,没有用这个的放,是没有问题的,bitmap   CreateBitmap一个要释放,LoadBitmap到底要不要的呢~??????Top

7 楼livedeal(怀念)回复于 2006-09-14 13:29:22 得分 0

好了,呵呵`Top

8 楼zhucde(【風間苍月】★<==>★【虚拟闲人】)回复于 2006-09-14 13:32:37 得分 0

Load一次然后绘制的时候用BitBlt改变显示大小呢?Top

9 楼jun_01(无名小卒)回复于 2006-09-14 13:37:58 得分 0

You   can   use   the   CGdiObject::DeleteObject   function   to   delete   bitmap   loaded   by   the   LoadBitmap   function,   or   the   CBitmap   destructor   will   delete   the   object   for   you.    
  =====================  
  由于你的bitmap不是局部变量,所以它不会自已释放资源Top

10 楼joy2th()回复于 2006-09-14 14:16:06 得分 0

程序员的福音---去www.mylinux.com.cn看看吧,程序员的图书馆  
  最全面的程序开发资料网www.mylinux.com.cn  
  包罗java,linux,数据库,安全等等技术资料,更有众多软件外包项目  
   
  我们的qq群:15096318   学习程序的都可以来  
   
  华资软件作为一家专业的软件公司,现公开承接各种软件外包项目.  
  www.mylinux.com.cn国内最大的网上软件加工厂,提供最完善的软件外包服务,采用流水型操作流程。  
   
  中国软件业的发展不缺人才也不缺资金,缺的是人才的组织和管理,MyLinux平台的建设解决了软件人才的组织和管理问题,将每一项目最合适的软件开发人才以最有效率的形式组织在一起,从而取得1+1〉2的效果。  
      MyLinux(www.   MyLinux.com.cn)由上海巨灵信息技术有限公司主办,是目前国内最大的网上软件加工厂,该网站将提供最完善的软件外包服务,采用流水型操作流程。  
   
  详情请登陆www.   MyLinux.com.cn  
  您可把您的具体要求发布在http://www.mylinux.com.cn/guiderAction.do?type=7上,并留下联系方式,我们网站的技术部门和客服会在第一时间审核安排.  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:livedeal
  • jun_01
  • snowbirdfly
  • cleverwyq
  • yjgx007

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo