VC下添加和删除自己系统托盘图标,及托盘事件的响应
来源:互联网 发布:mac word 简繁体转换 编辑:程序博客网 时间:2024/04/30 04:36
添加和删除系统托盘图标:
- //需要添加一个成员变量
- 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添加托盘图标并添加图标鼠标右键的响应
- VC++6.0 环境下删除自己添加的类
- VC++6.0 环境下删除自己添加的类
- java程序系统托盘的托盘图标的显示
- 系统托盘图标VC
- 批量update
- VC6.0下实现系统托盘的气泡提示窗口(Use NIIF_INFO)
- VC下简易实现窗体的淡入淡出效果(fade in-out for CDialog)
- 分享JS广告代码 如sina 163 首页平铺瞬间消失的那种
- VC下动态改变菜单显示的标题和Checked状态(Change title of CMenu and Checked)
- VC下添加和删除自己系统托盘图标,及托盘事件的响应
- VC下CSocket非阻塞方式下的连接框架
- VC下内存泄露检测与CListCtrl使用技巧(全)
- 谈谈NP和HS的通用unhook
- GIS阅读链接速递(一):Nokia Maps 2.0 hits beta
- HRT硬盘维修工具
- 断章之关于“想起来的爱情”
- Hibernate 学习笔记-1-1(一个简单的Hibernate实例)
- 在Asp.net 中弹出对话框是(Response.write不是好方法)