trayicon类在单文档中的使用

//新建一个基于单文档的工程
//将trayicon类引入工程,并引入图标作为动态显示用
//在工程中新建一个菜单ID为IDR_TRAYPOPUP,添加两个命令ID:ID_SHOWWINDOW 和 ID_HIDEWINDOW
//并利用类向导在CMainFrame类中为它们添加命令处理函数
void CMainFrame::OnShowwindow()
{
 // 显示窗口
 this->ShowWindow(SW_SHOW);
}

void CMainFrame::OnHidewindow()
{
 // 隐藏窗口
 this->ShowWindow(SW_HIDE); 
}


//在类CMainFrame头文件前添加
#include "ntray.h"
#define MAXICONS (int)9  //定义图标的最大数目,具体工程具体修改数目
#define DELAY (DWORD)100 //定义动画图标的时间延迟

//在DECLARE_MESSAGE_MAP()前添加自定义消息
afx_msg LRESULT OnTrayNotification(WPARAM wParam, LPARAM lParam);

//声明trayicon类对象
  CTrayNotifyIcon m_TrayIcon;

//声明图标数组
  HICON m_hIcons[MAXICONS];


//在CMainFrame的实现文件中添加消息宏ID
#define WM_TRAYNOTIFY (WM_USER + 100)

//在BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) 和 END_MESSAGE_MAP()之间添加消息映射
ON_MESSAGE(WM_TRAYNOTIFY, OnTrayNotification)

//在CMainFrame的实现文件中定义消息处理函数
LRESULT CMainFrame::OnTrayNotification(WPARAM wParam, LPARAM lParam)
{
  //Delegate all the work back to the default implementation in
  //CTrayNotifyIcon.
  return m_TrayIcon.OnTrayNotification(wParam, lParam);
}

//在CMainFrame的构造函数中添加icon的初始化代码
  for (int i=0; i<MAXICONS; i++)
  {
 //任务栏图标,注意引入的图标的ID值为连续的,且IDI_ICON1的值为图标ID中最小的
   m_hIcons[i] = AfxGetApp()->LoadIcon(IDI_ICON1 + i);
  }

//在CMainFrame的OnCreate(LPCREATESTRUCT lpCreateStruct) 函数中添加
  if (!m_TrayIcon.Create(this, IDR_TRAYPOPUP, _T("提示信息"), m_hIcons, MAXICONS, DELAY, WM_TRAYNOTIFY))
  {
    AfxMessageBox(_T("Failed to create tray icon"), MB_OK | MB_ICONSTOP);
    return -1;
  }

//在需要使用动态图标或静态图标处加入以下代码
  if (m_TrayIcon.UsingAnimatedIcon())//判断是否处于动态显示状态
  {
    m_TrayIcon.SetIcon(m_hIcons[0]);//设置通知区为静态图标
  m_TrayIcon.SetTooltipText(_T("静止也美!"));
 }
  else
  {
    m_TrayIcon.SetIcon(m_hIcons, MAXICONS, DELAY);//设置通知区为动态图标
 m_TrayIcon.SetTooltipText(_T("运动才美!"));
  }
备注:具体的类文件,请到我的资源里下载。

http://download.csdn.net/source/1459937
                                                  晨曦夕辰
                                                  2009.07.03

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
trayicon使用 //新建一个基于文档的工程 //将trayicon引入工程,并引入图标作为动态显示用 //在工程新建一个菜ID为IDR_TRAYPOPUP,添加两个命令ID:ID_SHOWWINDOW 和 ID_HIDEWINDOW //并利用向导在CMainFrame为它们添加命令处理函数 void CMainFrame::OnShowwindow() { // 显示窗口 this->ShowWindow(SW_SHOW); } void CMainFrame::OnHidewindow() { // 隐藏窗口 this->ShowWindow(SW_HIDE); } //在CMainFrame头文件前添加 #include "ntray.h" #define MAXICONS (int)9 //定义图标的最大数目,具体工程具体修改数目 #define DELAY (DWORD)100 //定义动画图标的时间延迟 //在DECLARE_MESSAGE_MAP()前添加自定义消息 afx_msg LRESULT OnTrayNotification(WPARAM wParam, LPARAM lParam); //声明trayicon对象 CTrayNotifyIcon m_TrayIcon; //声明图标数组 HICON m_hIcons[MAXICONS]; //在CMainFrame的实现文件添加消息宏ID #define WM_TRAYNOTIFY (WM_USER + 100) //在BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) 和 END_MESSAGE_MAP()之间添加消息映射 ON_MESSAGE(WM_TRAYNOTIFY, OnTrayNotification) //在CMainFrame的实现文件定义消息处理函数 LRESULT CMainFrame::OnTrayNotification(WPARAM wParam, LPARAM lParam) { //Delegate all the work back to the default implementation in //CTrayNotifyIcon. return m_TrayIcon.OnTrayNotification(wParam, lParam); } //在CMainFrame的构造函数添加icon的初始化代码 for (int i=0; i<MAXICONS; i++) { //任务栏图标,注意引入的图标的ID值为连续的,且IDI_ICON1的值为图标ID最小的 m_hIcons[i] = AfxGetApp()->LoadIcon(IDI_ICON1 + i); } //在CMainFrame的OnCreate(LPCREATESTRUCT lpCreateStruct) 函数添加 if (!m_TrayIcon.Create(this, IDR_TRAYPOPUP, _T("提示信息"), m_hIcons, MAXICONS, DELAY, WM_TRAYNOTIFY)) { AfxMessageBox(_T("Failed to create tray icon"), MB_OK | MB_ICONSTOP); return -1; } //在需要使用动态图标或静态图标处加入以下代码 if (m_TrayIcon.UsingAnimatedIcon())//判断是否处于动态显示状态 { m_TrayIcon.SetIcon(m_hIcons[0]);//设置通知区为静态图标 m_TrayIcon.SetTooltipText(_T("静止也美!")); } else { m_TrayIcon.SetIcon(m_hIcons, MAXICONS, DELAY);//设置通知区为动态图标 m_TrayIcon.SetTooltipText(_T("运动才美!")); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值