VC下添加和删除系统托盘图标,及托盘事件的响应
来源:互联网 发布:淘宝代购直播 知乎 编辑:程序博客网 时间:2024/05/09 00:30
添加和删除系统托盘图标:
- //需要添加一个成员变量
- 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下添加和删除自己系统托盘图标,及托盘事件的响应
- VC下添加和删除系统托盘图标,及托盘事件的响应
- VC下添加和删除系统托盘图标,处理响应事件(Shell_NotifyIcon)
- 托盘图标的添加和消息响应
- VC++ 添加托盘图标和气泡
- vc添加任务栏托盘图标
- 托盘图标的删除和托盘程序的优化
- vc托盘图标的实现以及托盘右键菜单的响应
- VB托盘图标不响应WM_MOUSEMOVE的原因及解决方法
- vc 系统托盘图标的实现
- MFC下托盘图标的实现和托盘菜单
- MFC下托盘图标的实现和托盘菜单
- MFC添加托盘图标并添加图标鼠标右键的响应
- java程序系统托盘的托盘图标的显示
- 系统托盘图标VC
- VC 任务栏 系统托盘图标
- VC实现系统托盘图标
- vC++ 系统托盘图标实现
- 摘录:利用共享内存实现进程间通信
- web开发工具(ColorPic,HttpWatch,IEDevToolBar)
- Spring学习笔记之Spring中applicationContext.xml的bean里的id和name属性区别
- 用java获得客户端真实的ip地址
- 2.6内核netfilter包截获
- VC下添加和删除系统托盘图标,及托盘事件的响应
- just a life
- 列表拖拉效果
- 求N的阶乘_递归调用_0~8
- C/C++排序算法
- 中国银行金融卡规范
- flash物理引擎应用:FisixObject类(1)
- javacard环境数的无符号性转化
- 各种排序算法java实现