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

如果在一个普通窗口中显示gif图像

楼主piscesyy(杨阳)2005-06-03 15:51:44 在 VC/MFC / 图形处理/算法 提问

rt,并且该gif图像是能实现动画功能的,而不是仅仅显示图像的第一帧。请高手指点,请附代码 问题点数:0、回复次数:1Top

1 楼o1n(小毛子)回复于 2005-06-04 18:15:54 得分 0

网上有:  
  pictureEx的类支持窗口jpeg和gif图片的显示  
   
    PictureEx图片显示类支持以下格式的图片:GIF   (including   animated   GIF87a   and   GIF89a),   JPEG,   BMP,   WMF,   ICO,   CUR等,我特别推崇的是可以做出动画,而且轻而易举,确实很COOL。  
   
  下面是详细的编程过程:  
   
  1.   新建项目:在VC6中用MFC新建一个基于对话框的GifDemo应用程序,接受所有缺省选项即可;  
   
  2.在项目中插入文件:把PictureEx.h,PictureEx.cpp文件copy   到项目文件夹下,Project->Add   to   Project->Files中选上PictureEx.h,PictureEx.cpp,   Insert;  
   
  3.加入图片控件:从对话框控件中把Picture   Control(图片控件)拖入主对话框中,修改其属性:ID:IDC_GIF,TYPE:Rectangle,其余接受缺省选项。再在ClassWiard中为IDF_GIF加入CSatic控制变量m_GifPic,   注意看一下,GifDemoDlg.h中是否加上了#include   "PictureEx.h"(由ClassWiard加入)。然后将CSatic   m_GifPic;gjq更改成CPictureEx   m_GifPic;  
   
  4.加载动画文件:先将要加载的动画文件放到   res   资源文件夹下,再将其Import进项目中,由于MFC只支持256BMP文件的图片,因此,我们要新建一个图片类型:"GIF",我在这里将我网站的宣传图片roaring.gif放进去   (希望大家多支持),并将其ID修改成:IDR_GIFROARING。  
   
  import(导入)gif动画的详细过程:  
  在resourceview窗口中,单击鼠标右键,在出现的环境菜单中选择“import...”命令,会出现“import   resource”选择文件对话框,文件类型选择“所有文件(*.*)”,open   as   选项为"auto",再选择动画文件所在目录,选上要载入的动画文件   roaring.gif,再单击   import,由于gif动画类型不是vc默认的文件类型,这时会出现"custom   resource   type"对话框,键入“"gif"”,再单击ok,然后再修改其id。  
   
   
   
  5.在程序的适当位置添入加载代码:   这里,我们在CGifDemoDlg::OnInitDialog()函数中加入如下代码:  
   
  //   TODO:   Add   extra   initialization   here  
  if   (m_GifPic.Load(MAKEINTRESOURCE(IDR_GIFROARING),_T("Gif")))  
  m_GifPic.Draw();  
   
  如果仅仅把动画载入,到这就可以了,运行一下,应该看看您的的成果了。  
   
  下面附带说说如何将这幅动画制作成超链接,以后,咱们也可以宣传自已的公司、网站或产品了。  
   
  6.利用ClassWiard加入一个LButtonDown鼠标左键消息处理函数CGifDemoDlg::OnLButtonDown(UINT   nFlags,   CPoint   point),     添入如下代码:  
   
  void   CGifDemoDlg::OnLButtonDown(UINT   nFlags,   CPoint   point)    
  {  
  //   TODO:   Add   your   message   handler   code   here   and/or   call   default  
  CRect   rect;  
  m_GifPic.GetWindowRect(&rect);  
  ScreenToClient(&rect);  
   
  if   (rect.PtInRect(point))  
  ShellExecute(AfxGetMainWnd()->m_hWnd,_T("open"),  
  _T("http://roaringwind.best.163.com"),_T(""),NULL,0);  
   
   
  CDialog::OnLButtonDown(nFlags,   point);  
  }  
   
  我在这儿将我主页的地址放上了,运行,点击动画图片就能进入我的站点的了。当然要是能象所有的超链接一样,能将鼠标变成手形,就更好了。  
   
  7.改变鼠标形状:将一个鼠标文件放在res文件夹中,IMPORT,ID:IDC_CURSOR1,利用ClassWiard加入一个WM_SETCURSOR消息处理函数CGifDemoDlg::OnSetCursor(CWnd*   pWnd,   UINT   nHitTest,   UINT   message),     添入如下代码:  
   
  BOOL   CGifDemoDlg::OnSetCursor(CWnd*   pWnd,   UINT   nHitTest,   UINT   message)    
  {  
  //   TODO:   Add   your   message   handler   code   here   and/or   call   default  
  CRect   rect;  
  m_GifPic.GetWindowRect(&rect);  
  ScreenToClient(&rect);  
   
  CPoint   point;  
  GetCursorPos(&point);  
  ScreenToClient(&point);  
   
  if   (rect.PtInRect(point)   &&   m_hCursor)  
  {  
  SetCursor(m_hCursor);  
  return   TRUE;  
  };  
   
   
  return   CDialog::OnSetCursor(pWnd,   nHitTest,   message);  
  }  
   
  Top

相关问题

  • 图像显示???
  • 如何显示数据库中的GIF图像
  • 什么控件可以显示 gif 图像?
  • VC中能否显示GIF或JPG图像
  • 继续问关于gif图像显示的问题,swing的。
  • directx 图像显示
  • Java显示图像
  • 如何用VC++显示多种格式图像,比如:gif、jpg等等
  • PHP+MySQL怎么实现图像文件(*.jpg,*.gif)的存储和提取显示???
  • 如何用windows api函数显示一副jpg或者gif图像?

关键词

  • 文件
  • 图像
  • 鼠标
  • 代码
  • 函数
  • 文件夹
  • 控件
  • 选项
  • gifpic
  • pictureex

得分解答快速导航

  • 帖主:piscesyy

相关链接

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

广告也精彩

反馈

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