VC如何作出有动画效果的托盘图标

 1在.h文件里定义变量:

protected:
 HICON   m_hIcon;
 HICON   m_hIconArray[4];//托盘区动画图标数组
 int     m_nIconPos;     //当前托盘区显示图标

2.cpp文件中加入:

//主程序对话框类构造函数
CCDROMControlDlg::CCDROMControlDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CCDROMControlDlg::IDD, pParent)
{
 //{{AFX_DATA_INIT(CCDROMControlDlg)
 m_nIconPos      = 0;    //托盘区动画图标从m_hIconArray[0]开始显示
 //}}AFX_DATA_INIT
  
 m_hIcon         = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

 //加载托盘区动画图标
 m_hIconArray[0] = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
 m_hIconArray[1] = AfxGetApp()->LoadIcon(IDI_ICON1);
 m_hIconArray[2] = AfxGetApp()->LoadIcon(IDI_ICON2);
 m_hIconArray[3] = AfxGetApp()->LoadIcon(IDI_ICON3);
}

//定时器消息处理函数,用来实现动画图标
void CCDROMControlDlg::OnTimer(UINT nIDEvent)
{
    NOTIFYICONDATA nc;
 nc.cbSize = sizeof(NOTIFYICONDATA);
 if(m_nIconPos==3)
    m_nIconPos=0;
 nc.hIcon = m_hIconArray[m_nIconPos++];
 nc.hWnd = m_hWnd;
 lstrcpy(nc.szTip,"动画效果托盘图标");
 nc.uCallbackMessage = WM_NOTIFYICON;           //自定义最小化托盘消息
 nc.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
 nc.uID = IDC_NOTIFYICON;
 Shell_NotifyIcon(NIM_MODIFY, &nc);
 CDialog::OnTimer(nIDEvent);
}

3在最小化函数中加入设置定时:  SetTimer(1,200,NULL);//设置定时器

   在销毁窗口加入关闭定时器:  KillTimer(1);

至此您就可以加入有动画效果的托盘图标了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值