CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

谁有显示多种图像文件(GIF,JPG,PNG,PSD....)的免费控件或者源代码?

楼主hizg2008()2002-04-06 16:03:50 在 VC/MFC / 基础类 提问

hizg@263.net  
  问题点数:20、回复次数:8Top

1 楼Anon(无名)回复于 2002-04-06 16:05:34 得分 10

只支持静态GIF,JPEG、WMF、ICO、CUR。  
  void   DrawPIC(HDC   hDC,LPCTSTR   sFile,int   x,int   y,int   cx,int   cy)  
  {  
      IPicture   *pPic;    
      IStream   *pStm;    
   
      CFileStatus   fstatus;    
      CFile   file;    
      LONG   cb;    
   
      if(file.Open(sFile,CFile::modeRead)   &&  
          file.GetStatus(sFile,fstatus)   &&  
          ((cb   =   fstatus.m_size)   !=   -1))  
      {  
          HGLOBAL   hGlobal   =   GlobalAlloc(GMEM_MOVEABLE,   cb);    
          LPVOID   pvData   =   NULL;    
          if(hGlobal   !=   NULL)  
          {  
              if((pvData   =   GlobalLock(hGlobal))   !=   NULL)  
              {  
                  file.ReadHuge(pvData,   cb);  
                  GlobalUnlock(hGlobal);  
                  CreateStreamOnHGlobal(hGlobal,   TRUE,&pStm);    
   
                  if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,  
                      TRUE,IID_IPicture,(LPVOID*   )&pPic)))  
                  {  
                      OLE_XSIZE_HIMETRIC   hmWidth;  
                      OLE_YSIZE_HIMETRIC   hmHeight;    
             
                      pPic->get_Width(&hmWidth);    
                      pPic->get_Height(&hmHeight);  
             
                      int   fX,fY;    
                      if((cx==-1)||(cy==-1))  
                      {              
                          fX   =   MulDiv(hmWidth,   GetDeviceCaps(hDC,LOGPIXELSX),   2540);  
                          fY   =   MulDiv(hmHeight,   GetDeviceCaps(hDC,LOGPIXELSX),   2540);  
                      }  
                      else  
                      {  
                          fX   =   cx;fY   =   cy;  
                      }  
                      if(FAILED(pPic->Render(hDC,x,y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))  
                          AfxMessageBox("Failed   To   Render   The   picture!");  
                      pPic->Release();  
                  }  
                  else  
                      AfxMessageBox("Error   Loading   Picture   From   Stream!");  
              }  
          }  
      }  
      else  
          AfxMessageBox("Can't   Open   Image   File!");      
  }Top

2 楼jiangsheng(蒋晟.Net[MVP])回复于 2002-04-06 16:15:48 得分 0

GDI+Top

3 楼zhzhd(东东)回复于 2002-04-06 16:20:37 得分 0

为什么不采用自带浏览器控件Top

4 楼jiangsheng(蒋晟.Net[MVP])回复于 2002-04-06 16:25:35 得分 0

PSD是Adobe的,不能用IETop

5 楼oldmonsterman(飞龙在天)回复于 2002-04-06 19:38:35 得分 5

www.vchelp.net  
  www.vckbase.comTop

6 楼attackboy(我像是飘在城市的一片尘埃)回复于 2002-04-06 20:22:30 得分 5

普通的格式,你可以参考IPicture接口。如第一个回答的人写的代码。  
  在codeproject.com上也有。如果要多一点,你就必须用一些专门的Dll来完成。也可以在那个站点找到。当然使用GDI+也是一个非常好的选择。Top

7 楼hizg2008()回复于 2002-04-08 10:15:43 得分 0

GDI+是不是.net的技术??我用vc6.0  
  Top

8 楼jiangsheng(蒋晟.Net[MVP])回复于 2002-04-08 11:23:32 得分 0

要下新版本的SDK头文件Top

相关问题

  • 有谁可以把jpg,gif,png图片的文件结构列一下,谢谢
  • 请问如何建立一个Image对象,并导入gif,jpg,png等格式图片并显示
  • 请问如何在VB中实现各种类型图片的格式转换(BMP,JPG,TGA,GIF,psd,tif,pcx等等)?
  • 为什么 GIF、PNG图象不透明?
  • 怎样显示jpg,gif图片?
  • 谁有icon,gif,jpg格式的文章?
  • bmp如何转化成gif or jpg
  • txt转换成gif或jpg问题
  • webform中gif转换jpg问题
  • 谁有 BMP -> Jpg or Gif 的源代码? 谁有 BMP -> Jpg or Gif 的源代码?

关键词

  • .net
  • null
  • ppic
  • hmheight
  • hglobal
  • hmwidth
  • fstatus
  • pvdata
  • fy
  • ipicture

得分解答快速导航

  • 帖主:hizg2008
  • Anon
  • oldmonsterman
  • attackboy

相关链接

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

广告也精彩

反馈

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