MFC隐藏任务栏图标并显示到托盘
MFC隐藏任务栏图标并显示到托盘
参考链接:https://blog.csdn.net/vipzjh/article/details/52211407
在对话框头文件中定义消息ID (用于处理点击托盘图标) :
#define WM_SHOWTASK WM_USER+666
对话框头文件添加成员声明:
protected:
//start----------------------图标显示至托盘--------------------------------NOTIFYICONDATA m_nid;void ToTray();afx_msg LRESULT onShowTask(WPARAM wParam, LPARAM lParam);
//end-----------------------图标显示至托盘--------------------------------
对话框CPP添加自定义消息绑定:
BEGIN_MESSAGE_MAP(CUserDlg,CDialog)//......................ON_MESSAGE(WM_SHOWTASK,onShowTask)
END_MESSAGE_MAP()
对话框CPP文件实现ToTray:
void CLaserMarkingManagerDlg::ToTray()
{m_nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);m_nid.hWnd = this->m_hWnd;m_nid.uID = IDR_MAINFRAME;m_nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;m_nid.uCallbackMessage = WM_SHOWTASK;//自定义的消息名称 WM_SHOWTASK 头函数中定义为WM_USER+1m_nid.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME));strcpy(m_nid.szTip, "托盘图标");//当鼠标放在上面时,所显示的内容Shell_NotifyIcon(NIM_ADD, &m_nid);//在托盘区添加图标
}
对话框CPP文件实现onShowTask:
LRESULT CLaserMarkingManagerDlg::onShowTask(WPARAM wParam, LPARAM lParam)
{if (wParam != IDR_MAINFRAME)return 1;switch (lParam){case WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭”{LPPOINT lpoint = new tagPOINT;::GetCursorPos(lpoint);//得到鼠标位置CMenu menu;menu.CreatePopupMenu();//声明一个弹出式菜单//增加菜单项“关闭”,点击则发送消息WM_DESTROY给主窗口(已//隐藏),将程序结束。menu.AppendMenu(MF_STRING, WM_DESTROY, "退出");//确定弹出式菜单的位置SetForegroundWindow();menu.TrackPopupMenu(TPM_LEFTALIGN, lpoint->x, lpoint->y, this);//资源回收HMENU hmenu = menu.Detach();menu.DestroyMenu();delete lpoint;}break;case WM_LBUTTONDBLCLK://双击左键的处理{//删除WS_EX_TOOLWINDOW风格,改为WS_EX_APPWINDOW(显示任务栏图标) ModifyStyleEx( WS_EX_TOOLWINDOW, WS_EX_APPWINDOW);this->ShowWindow(SW_SHOWNORMAL);//简单的显示主窗口}break;}return 0;
}
在OnInitDialog函数中调用ToTray():
//删除WS_EX_APPWINDOW风格,改为WS_EX_TOOLWINDOW**(隐藏任务栏图标)**
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
//图标显示至托盘
ToTray();
ShowWindow(SW_MINIMIZE); //初始最小化显示
为使应用程序退出时图标消失,在类向导添加WM_DESTROY消息,
在OnDestroy()函数中加入:
::Shell_NotifyIcon(NIM_DELETE,&m_nid);
(1)不使用系统的最小化按钮,自己拖按钮做隐藏功能:
void CLaserMarkingManagerDlg::OnBnClickedHide()
{//删除WS_EX_APPWINDOW风格,改为WS_EX_TOOLWINDOW(隐藏任务栏图标) ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);WS_EX_APPWINDOWShowWindow(SW_MINIMIZE);
}
(2)或者添加消息WM_SYSCOMMAND
void C***Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{// TODO: 在此添加消息处理程序代码和/或调用默认值if (SC_MAXIMIZE == nID){...............}if (SC_MINIMIZE == nID){//删除WS_EX_APPWINDOW风格,改为WS_EX_TOOLWINDOW(隐藏任务栏图标) ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);WS_EX_APPWINDOW}CDialogEx::OnSysCommand(nID, lParam);
}
MFC隐藏任务栏图标并显示到托盘相关推荐
- Unity3D之Windows端隐藏任务栏图标并添加至托盘
目录 1 基本效果 2 代码实现 2.1 思路 2.2 实现 2.2.1 Unity程序监听最小化和关闭事件 2.2.2 方便打包的菜单栏 2.2.3 IL2CPP启动外部程序 2.2.4 winfo ...
- 关于MFC程序中隐藏任务栏图标的问题
前几天有个MFC对话框程序,有个隐藏任务栏图标的功能需求,就在网上搜了搜,发现基本上都是这一句: ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);也就是 ...
- MFC程序隐藏任务栏图标的三种方法
在VC编程中,有时候我们需要将我们的程序在任务栏上的显示隐藏起来,我试过几种方法,下面我介绍一下我知道的三种方法. 第一种方法是设置窗口WS_EX_TOOLWINDOW扩展样式,通过在OnInitDi ...
- 如何隐藏任务栏图标小结(zz)
如何隐藏任务栏图标小结 如原始任务栏图标如下图: A:彻底隐藏所有上图中已运行程序的小图标? [1]打开运行对话框: 输入gpedit.msc命令,如下: 然后确定: [2]弹出组策略窗口,依 ...
- 隐藏任务栏图标的两种简易方法
1.运用组策略隐藏任务栏图标 在"开始→运行"中输入"GPEDIT.MSC"打开组策略,然后依次选择"用户配置→管理模板→任务栏和开始菜单→隐藏通知区 ...
- pyqt5 隐藏任务栏图标
pyqt5中隐藏任务栏图标很简单,只需要一行代码即可. MainWindow.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.FramelessWi ...
- qt linux系统隐藏任务栏图标
使用 Qt::Tool, Qt::WindowStaysOnTopHint ,Qt::X11BypassWindowManagerHint三个任意一个都可以隐藏任务栏图标,但不同系统可能对应不同的设置 ...
- 如何隐藏任务栏图标小结
如原始任务栏图标如下图: A:彻底隐藏所有上图中已运行程序的小图标? [1]打开运行对话框: 输入gpedit.msc命令,如下: 然后确定: [2]弹出组策略窗口,依次选择" ...
- wampserver启动后右下角任务栏图标不显示
启动wampserver后,图标右下角任务栏图标变成绿色,然后闪退,不再显示. 解决办法:ctrl + Alt+Delete 打开任务管理器,找到wampserver,右键结束进程,重新打开wamps ...
- 【办公软件】如何设置任务栏图标的显示与隐藏
在平时的办公中使用办公软件,总觉得有消息提示会打扰到自己.或是有一些必用的软件有消息提示却没有显示出来.那么如何才能设置Windows电脑右下角任务栏上的软件状态图标显示与隐藏呢? 如下所示,我在办公 ...
最新文章
- mysql 5.7 收费_MySQL5.7 常用用户操作
- SAP MM ME1M报表结果不科学?
- 根据坐标获取地图经纬度
- Flume概述和简单实例
- YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie...
- 课程分类管理-添加课程分类
- [python进阶]11接口:从协议到抽象基类
- python3函数调用时间_Python3 time clock()方法
- Java Web工程结构_项目结构
- 深入理解javascript函数参数
- AngularJS之代码风格36条建议【一】(九)
- 山东科技大学计算机网络_山东科技大学计算机网络共20讲视频
- 我的云之旅--hadoop单机设置(2)
- Tensorflow:variable变量和变量空间
- 网管学习日记-浮动静态路由和负载均衡
- Unity3D(六)光照系统
- 曼联携手HCL开发“数字体验平台”,期待大获全胜
- EOS智能合约开发系列(14): 关于require_auth函数
- 计算机网络(2)——标准化工作及相关组织
- 华南理工大学 数据库实验一 实验截图