VC下添加和删除系统托盘图标,及托盘事件的响应
2009-03-25 08:59
232 查看
添加和删除系统托盘图标:
//需要添加一个成员变量
NOTIFYICONDATA m_nd; //NOTIFYICONDATA结构
/***************************************
* 将图标加入系统托盘
* 参数:
* hWnd - 窗体句柄
* hIcon - 所要加入的图标句柄
* title - 悬停于系统托盘之上时所要显示的消息
* uCallbackMessage - 消息标识(需用户自己定义消息)
***************************************/
void CMyDlg::AddIcon(HWND hWnd, HICON hIcon, UINT uCallbackMessage, char *title)
{
m_nd.cbSize = sizeof(NOTIFYICONDATA);
m_nd.hWnd = hWnd;
m_nd.uID = IDR_MAINFRAME;
m_nd.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
m_nd.uCallbackMessage = uCallbackMessage;
m_nd.hIcon = hIcon;
strcpy(m_nd.szTip, title);
Shell_NotifyIcon(NIM_ADD, &m_nd); //加入图标
}
//删除系统托盘图标
void CMyDlg::RemoveIcon()
{
Shell_NotifyIcon(NIM_DELETE, &m_nd);
}
下面就是为图标添加自己的响应消息:
//用户定义的消息(在相应头文件中加入)
#define MYWM_NOTIFYICON WM_USER+1
//添加WinProc消息函数
LRESULT CMyCatchScreenDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
switch(message)
{
case MYWM_NOTIFYICON:
//如果是用户定义的消息
if(lParam==WM_LBUTTONDOWN)
{
//添加自己的函数
//鼠标单击图标时主窗口出现
//ShowMyWindow();
}
else if(lParam==WM_RBUTTONDOWN)
{
//添加自己的函数
//鼠标右键单击弹出选单
/*
CMenu menu;
menu.LoadMenu(IDR_MY_MENU); //载入事先定义的选单
CMenu*pMenu=menu.GetSubMenu(0);
CPoint pos;
GetCursorPos(&pos);
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());
*/
}
break;
}
return CDialog::WindowProc(message, wParam, lParam);
}
调用演示:
void CMyDlg::ShowMyWindow()
{
RemoveIcon(); //删除系统图标
ShowWindow(SW_SHOW); //显示窗口
}
void CMyDlg::HideMyWindow()
{
ShowWindow(SW_HIDE); //隐藏窗口
AddIcon(m_hWnd,m_hIcon,MYWM_NOTIFYICON,“MyDlg”); //添加系统图标
}
相关文章推荐
- VC下添加和删除系统托盘图标,处理响应事件(Shell_NotifyIcon)
- VC下添加和删除自己系统托盘图标,及托盘事件的响应
- 添加系统托盘图标
- 利用批处理文件删除系统托盘上的图标(适用于Windows各个版本)
- 系统托盘安全删除硬件图标不见了(任务栏USB图标不见了)的故障处理图文详解
- 删除已知进程ID的程序的系统托盘中的图标
- 为自己的应用程序添加系统托盘图标
- FLEX AIR添加系统托盘图标步骤
- 数组练习:各种数组方法的使用&&事件练习:封装兼容性添加、删除事件的函数&&星级评分系统
- TrayIcon 类 添加系统托盘不显示托盘图标
- VC2008中如何为MFC应用程序添加和删除消息响应函数
- vc 刷新系统托盘图标
- C# 控制台程序 托盘图标 事件响应
- 用vc实现隐藏系统托盘图标
- 删除已知进程ID的程序的系统托盘中的图标
- 对程序添加系统托盘图标支持-一个简单的C++封装
- 如何把程序图标添加到系统托盘上
- 如何在vc中添加键盘响应事件
- VC增加应用程序图标到系统托盘
- 添加系统托盘图标