MFC 为程序制作一个系统托盘图标、显示隐藏任务栏图标
来源:互联网 发布:开淘宝网店教程 编辑:程序博客网 时间:2024/05/21 19:29
以MFC对话框程序为例,为此对话框程序制作一个系统托盘图标。
1、 首先定义一个 NOTIFYICONDATA 类型的类成员变量 m_NotifyIcon;
2、 在BOOL CxxxDlg::OnInitDialog()函数中对m_NotfyIcon 初始化:
m_NotifyIcon.cbSize = sizeof(NOTIFYICONDATA); m_NotifyIcon.hWnd = this->GetSafeHwnd(); strcpy(m_NotifyIcon.szTip,"文件夹监视程序");//提示文字 m_NotifyIcon.uCallbackMessage = WM_ICONMESSAGE;//回调消息 m_NotifyIcon.uFlags = NIF_MESSAGE|NIF_TIP|NIF_ICON;//新增标志 m_NotifyIcon.hIcon = m_hIcon;//图标句柄 m_NotifyIcon.uID = IDR_MAINFRAME; Shell_NotifyIcon(NIM_ADD,&m_NotifyIcon);//为系统托盘增加此图标3、在 xxxDlg.cpp 文件中增加3个宏定义:
#define WM_ICONMESSAGE WM_USER + 101 #define ID_MENU_EXIT 10005 #define ID_MENU_SHOW 10008
4、重载虚基类函数 LRESULT CxxxDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam),并在函数中增加如下代码
LRESULT CxxxDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam){// TODO: 在此添加专用代码和/或调用基类switch(message){case WM_ICONMESSAGE:if(lParam == WM_RBUTTONDOWN){CMenu menu;CPoint point;GetCursorPos(&point);menu.CreatePopupMenu();menu.AppendMenu(MF_STRING, ID_MENU_SHOW, _T("显示/隐藏"));menu.AppendMenu(MF_SEPARATOR);menu.AppendMenu(MF_STRING, ID_MENU_EXIT, _T("退出程序"));menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this, NULL);menu.DestroyMenu();}break;default:break;}return CDialogEx::DefWindowProc(message, wParam, lParam);}5、为程序添加显示/隐藏及退出的操作。增加两个成员函数OnMenuShow()和OnMenuExit();
void CxxxDlg::OnMenuExit(void){SendMessage(WM_CLOSE, 0, 0);//发送关闭程序消息}void CxxxDlg::OnMenuShow(void){if(IsWindowVisible())//若当前窗口为显示状态则隐藏,否则反之{ShowWindow(SW_HIDE);}else{ShowWindow(SW_SHOW);}}6、为程序添加上面两个函数的消息映射,在BEGIN_MESSAGE_MAP(CxxxDlg, CDialogEx) 与END_MESSAGE_MAP()之间添加如下代码:
ON_COMMAND(ID_MENU_EXIT, OnMenuExit)ON_COMMAND(ID_MENU_SHOW, OnMenuShow)
7、有关 NOTIFYICONDATA 结构体的知识
- MFC 为程序制作一个系统托盘图标、显示隐藏任务栏图标
- 显示或隐藏程序任务栏图标
- MFC 子窗口任务栏显示图标和主窗口最小化在系统托盘中显示图标
- MFC对话框程序启动的时候直接隐藏、在任务栏不显示图标
- MFC 点击任务栏图标隐藏和显示窗口
- VC 任务栏 系统托盘图标
- 隐藏程序的任务栏图标
- 隐藏程序图标到任务栏
- MFC程序隐藏任务栏图标的三种方法
- MFC程序隐藏任务栏图标的三种方法
- MFC程序隐藏任务栏图标的三种方法
- MFC程序隐藏任务栏图标的三种方法
- 关于MFC程序中隐藏任务栏图标的问题
- 系统托盘中显示程序图标
- C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标
- C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标的Window appllication
- C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标
- WPF 程序点击任务栏图标显示隐藏最小化窗体
- 理想与现实
- Ubuntu10.04安装Git异常汇总
- Oracle数据库之SQL函数
- 例4-10,4-11
- 如何在<set>查询中加入where条件
- MFC 为程序制作一个系统托盘图标、显示隐藏任务栏图标
- jQuery动画和事件
- 随想录(三言两语app)
- S5PV210(TQ210)学习笔记——LCD驱动编写
- QueryPerformanceFrequency
- MSMQ无法启动服务-安装WINCC终极解决方法
- 【转】原生型指令码(native code)
- 基于Linux开源VOIP系统LinPhone[六]
- MMX和SSE的运用