动感的图标

原创 2001年05月10日 13:45:00
 

动感的图标


   看了这么久的WINDOWS 单调而标准的界面,不知你是否会觉得有些烦。其实你只需要稍做改动,就可令你的应用程序增色不少。用一句流行的话来说,就是COOL极了。本文将介绍一种在窗口标题栏实现动态图标的方法,只需少量的代码,就可以得到一种奇妙的效果。就像超级解霸在运行时不断转动的图标一样。
  下面就让我们开始吧。我们将用VISUAL C++来实现它。首先基于C++的面向对象的设计思想,我们应该建立一个自己的类来管理有关类对象的创建、运行、销毁等等工作。但是不要忘了使用VISUAL C++很关键的一条就是要善于使用微软的MFC(基本类库),在MFC中,封装了很多常用的类和一些WINDOWS的API函数。我们应该感谢这些优秀的程序员,感谢他们为我们所作的大量的工作。由于他们的努力使得很多复杂的问题变得简单。在本处我们可以发现在MFC中有一个叫做CImage List 的类对我们很有帮助。这个类用于有效地管理一系列的相似的位图或图标,它实现了WINDOWS的通用图像列表控制。我们应该在自己的应用程序的类中包含这个类的一个对象做为数据成员,再完成一些附加的工作就大功告成了。
  我们所要使用的CImageList类的有关数据成员和成员函数的说明如下:
  m_hImageList 是一个包含了与这个对象相关的图形列表的句柄create函数初始化一个图像链表并把它联接到CImageList类一个对象上它的第一个参数是包含了图标的位图资源ID值,第二个参数是指16×16点的位图,第三个参数使用默认值,第四个参数是颜色的RGB值。
  具体的做法如下:
  一、 把头文件和实现文件加入到你自己的项目中
  二、 创建需要的位图资源(四个16×16像素点的图标)
  三、 在主框架类的开头包含头文件
  #include“myactive.h"
  四、为主框架类加上如下数据成员
  CMyactive m_active;//加入类对象UINT m_time;//设置时间
  五、为主框架类的函数添加如下代码m-active.setimagelist(idb-anim-imglist,4,rgb(0,0,0));
  上面函数的第一个参数是资源ID值,第二个是相似图像的数目,第三个参数设置颜色
  m_time = this->settimer(99,500,null);
  以上函数用于生成一个定时器
  六、用ClassWizard为主框架类增加WM_DESTROY消息,增加ondestroy()成员函数,添加如下语句,回收系统资源。
  CFrameWnd::OnDestroy();
  if(m_time!= 0)
  killtimer(m_time);
  七、 用ClassWizard为主框架类增加WM_TIMER消息,添加成员函数,并加上如下代码,以实现动态图标m_active.shownextimage();
  最后,编译、运行即可。
  我们所定义的类的头文件和实现文件如下:
  //myactive.h实现类的申明
  #if !defined(AFX-MYACTIVE-H_-47E058AD-6F69-11D2-B59C-86DD54033006-INCLUD-ED-)
  #define AFX- MYACTIVE-H-47E058AD-6F69-11D2-B59C-86DD54033006-INCLUDED-
  class CMyactive
  {
  protected :
  CImageList m_imgList;//构造对象
  int m_Counter;//保存数据
  int m_Images;
  HICON hIcon;//图标句柄
  HICON hPrevIcon ;
  public:
  CMyactive();
  ~CMyactive();
  BOOL Set Image List(int IDResource,int number,COLORREF color);
  BOOL ShowNextImage();
  };
  #endif//#define AFX-MYAC-TIVE-H-47E058AD-6F69-11D2-B59C-86DD54033006_-INCLUDED-
  //实现文件
  #include “stdafx.h"
  #include “myactive.h"
  CMyactive:: CMyactive ()//缺省构造函数
  {
  m_Counter = -1;
  m_Images = -99;
  m_imgList.m_hImageList = NULL;//初始化链表
  }
  CMyactive::~ CMyactive ()
  {
  if (hPrevIcon)
  DestroyIcon(hPrevIcon);
  //回收资源
  }
  BOOL CMyactive::SetImageList(int IDResource,int number,COLORREF color)
  {
  if(number<= 0)
  return FALSE;
  m-Images = number;
  VERIFY(m-img List.Create(IDResource,16,1,color));
  return TRUE;
  }
  BOOL CMyactive::ShowNextImage()//此函数将被反复调用,实现动态效果
  {
  if(m_imgList.m_hImageList == NULL)
  return FALSE;
  m_Counter++;
  if(m_Counter >= m_Images)
  m_Counter =0;
  //从图像链表中创建图标
  hIcon = m_imgList.ExtractIcon(m_Counter);
  //向主窗口发送消息通知更新图标
  HICON hPrevIcon = (HICON) AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);
  //释放资源
  if (hPrevIcon)
  DestroyIcon(hPrevIcon);
  return TRUE;
  }(成都 飞扬 )

打造H5动感影集的爱恨情仇(动画性能篇)

“你听说过动感影集么?” 动感影集是QQ空间新功能,可以将静态的图片轻松转变为动态的视频集,且载体是HTML5(简称H5)页面,意味着可以随时分享到空间或朋友圈给好友欣赏! 移动端区别于PC年...
  • qq_32121803
  • qq_32121803
  • 2015年12月11日 14:36
  • 228

动感歌词制作与转换工具 1.2.1版本

LyricTools 支持qrc、krc、trc、网易云音乐的歌词相互转,支持输出krc、qrc、trc、 网易云音乐、srt、smi、lrc、ksc、ssa、foobar2000插件eslyri...
  • zyjying520
  • zyjying520
  • 2018年01月16日 13:07
  • 158

Android之富有动感的底部弹窗效果

请尊重个人劳动成果,转载注明出处,谢谢! http://blog.csdn.net/xiaxiazaizai01 在逛github的时候,看见了轻微大牛写了一个SweetSheet库,效果挺炫...
  • xiaxiazaizai01
  • xiaxiazaizai01
  • 2016年08月04日 17:27
  • 806

【整理自慕课网】Android动感系列-扫一扫 ZXing

欢迎学习Android 扫一扫功能主要实现的功能1.二维码解析2.二维码生成二维码的库源码(慕课网链接) 导入方法:1.导入module:file>new>import module>libzxi...
  • qq_15989639
  • qq_15989639
  • 2016年04月24日 11:01
  • 616

JS超级动感展示

index.htm   drame(drame)-广告代码预览 var m_nPageInitTime = new Date(); var MainTopRol...
  • zhaohehe123
  • zhaohehe123
  • 2012年12月03日 15:16
  • 137

Android 富有动感的底部弹出框

一个富有动感的 Sheet, 先发两张图:  项目地址:https://github.com/zzz40500/AndroidSweetSheet...
  • jdsjlzx
  • jdsjlzx
  • 2016年04月23日 23:18
  • 1419

普通模糊,动感模糊,高斯模糊算法实现

为了将来可能会用到一些滤镜的效果,这里先
  • zx6733090
  • zx6733090
  • 2014年10月17日 17:40
  • 2383

动感单车的好处、体系和注意事项

动感单车,它是自行车运动的一种,首创这一运动的是美国的私人教练JOHNNYG。它有七大好处,三大体系以及注意事项。...
  • u011729265
  • u011729265
  • 2017年11月30日 17:59
  • 199

036

movie dictionary     传记 American slang 非常的兴奋,有快感 比如过山车 Classic film clips   书呆子   ...
  • xy88115211
  • xy88115211
  • 2018年01月09日 18:55
  • 18

037

movie dictionary   恐怖片    American slang     挺让人+adj     Classic film clips   让谁烦 ...
  • xy88115211
  • xy88115211
  • 2018年01月09日 18:55
  • 22
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动感的图标
举报原因:
原因补充:

(最多只允许输入30个字)