MFC实现程序托盘
来源:互联网 发布:mac os x sierra bug 编辑:程序博客网 时间:2024/05/16 19:49
今天将程序托盘加入了正在开发的程序中,实现如下。
使程序托盘我们这里要用到了一个结构体NOTIFYICONDATA,它包含了系统需要用来传递托盘区域信息的消息;还有需要用到一个函数Shell_NotifyIcon,它的作用是对拖盘图标进行显示与删除。
STRUCT NOTIFLYICONDATA{cbSize //结构体的大小,以字节为单位hIcon //任务栏上显示的图标hWnd //窗口句柄uCallbackMessage //自义定消息处理,当你对托管图标操作时,响应这消息uFlags //作用标识,比如你想让图标起作用可以用NIF_ICON ,想显示提标信息可用NIF_TIPuID //图标IDszTip //鼠标放上去的提示信息};BOOL Shell_NotifyIcon( DWORD dwMessage,PNOTIFYICONDATA lpdata);/**dwMessage:执行的操作,可选参数为:NIM_ADD(创建托管图标,NIM_DELETE(删除托管图标),NIM_MODIFY(修改托管图标)**/
现在开始实现,首先定义NOTIFYICONDATA,在OnInitDialog对其初始化。
nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA); nid.hWnd=this-> m_hWnd; nid.uID=IDR_MAINFRAME; nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ; nid.uCallbackMessage = WM_SHOWTASK;//自定义的消息名称 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); strcpy(nid.szTip, _T("xxx"));//信息提示条 Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
自定义消息供NOTIFYICONDATA结构使用。
#define WM_SHOWTASK (WM_USER + 100)afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAM lParam);LRESULT CQueueServerDlg::OnShowTask(WPARAM wParam,LPARAM lParam) //wParam是图标的ID,lParam是鼠标的行为 { if(wParam != IDR_MAINFRAME) {return 1; }switch(lParam) { case WM_RBUTTONUP://右键起来时弹出快捷菜单{ LPPOINT lpoint=new tagPOINT; ::GetCursorPos(lpoint);//得到鼠标位置 CMenu menu; menu.CreatePopupMenu();//声明一个弹出式菜单 menu.AppendMenu(MF_STRING,WM_DESTROY, "Close"); //增加菜单项“关闭”,点击则发送消息WM_DESTROY给主窗口(已隐藏)将程序结束。 SetForegroundWindow(); menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this); //确定弹出式菜单的位置HMENU hmenu=menu.Detach(); //资源回收 menu.DestroyMenu(); delete lpoint; } break; case WM_LBUTTONDBLCLK:{ this-> ShowWindow(SW_SHOW);} break; case WM_LBUTTONDOWN:this-> ShowWindow(SW_SHOW);break;} return 0; }
最后在OnDestroy函数删除托盘图标。
Shell_NotifyIcon(NIM_DELETE,&nid);
1 0
- MFC实现程序托盘
- 利用"NOTIFYICONDATA"实现MFC的托盘程序
- MFC程序任务栏托盘图标的实现
- 利用"NOTIFYICONDATA"实现MFC的托盘程序
- 利用"NOTIFYICONDATA"实现MFC的托盘程序
- MFC程序最小化右下角托盘的实现
- MFC托盘程序类
- MFC 托盘实现
- mfc实现托盘图标
- MFC 设计托盘图标程序
- MFC程序最小化到托盘
- MFC最小化程序到托盘
- MFC最小化程序到托盘
- MFC程序最小化到托盘
- MFC程序隐藏于托盘
- MFC程序最小化到托盘
- MFC程序最小化托盘显示
- MFC程序最小化到托盘
- 很不错的开源ERP ,ODOO , 你也来试试
- zookeeper系列之通信模型(转)
- 802.11n 协议浅析
- 黑板客爬虫闯关第四关
- (多线程)DanLi
- MFC实现程序托盘
- ORA-01461:仅能绑定要插入 LONG 列的 LONG 值
- 简析Android的垃圾回收与内存泄露
- HBase使用场景和成功案例 (转)
- Linux时间函数之 gettimeofday() 函数之使用方法
- Qt信号槽
- 多线程底层的实现
- hbase shell基础和常用命令详解(转)
- 什么是P问题、NP问题和NPC问题