关于MFC程序中隐藏任务栏图标的问题
前几天有个MFC对话框程序,有个隐藏任务栏图标的功能需求,就在网上搜了搜,发现基本上都是这一句: ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);也就是修改窗口的扩展风格,去掉APPWINDOW属性,添加TOOLWINDOW属性,这样做的效果就是任务栏的图标按钮不见了,同时窗口的标题栏也发生了变化,原来的最小化最大化按钮都不见了 (对于这一点很不爽,可能设计者有自己的原因),而且基本上都是将这句放在对话框的OnInitDialog中使用,无法在其他地方来随时改变(其实是可以的,只不过需要使用前后分别先隐藏和显示窗口而已也就是先ShowWindow(SW_HIDE),然后修改样式,再接着ShowWindow(SW_SHOW),如果单纯修改样式是没有效果的,这个细节折腾了我很久)。
再说说上边不爽的地方,鉴于TOOLWINDOW样式会修改原窗口标题样式,那有没有其他方法不改变原窗口标题栏样式呢,当然有了。
以MFC对话框程序为例,原理就是创建一个隐藏的窗口,然后设为主对话框的父窗口就行了,以下是代码示例:
BOOL CTestDlgApp::InitInstance()
{......// 创建一个隐藏的窗口,以便控制主对话框在任务栏的隐藏和显示CWnd m_wndOwner;if (m_wndOwner.m_hWnd == NULL){LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);if (!m_wndOwner.CreateEx(0, pstrOwnerClass, _T(""), //创建一个隐藏的弹出样式的窗口WS_POPUP, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL, 0))return FALSE;}////////////////////////////////////////////////......CTestDlg dlg(&m_wndOwner); // 以隐藏的窗口作为父窗口m_pMainWnd = &dlg;......// 销毁隐藏的父窗口if (m_wndOwner.m_hWnd != NULL)m_wndOwner.DestroyWindow();return FALSE;
}
通过上边的操作,在对话框中需要显示和隐藏的地方,使用如下代码即可方便自如的随时控制任务栏图标的显示和隐藏。
显示:
ShowWindow(SW_HIDE);ModifyStyleEx(0, WS_EX_APPWINDOW); // 恢复任务栏显示.ShowWindow(SW_SHOW);
隐藏:
ShowWindow(SW_HIDE);ModifyStyleEx(WS_EX_APPWINDOW, 0);//从任务栏中去掉.ShowWindow(SW_SHOW);
这样处理后的对话框的标题栏没有任何改变,完美实现随时隐藏和显示任务栏图标。
值得一提的是这样隐藏任务栏图标后,在使用ALT+TAB切换程序时,看不到应用程序。这个问题没有继续研究,知道的朋友可以留言交流。
关于MFC程序中隐藏任务栏图标的问题相关推荐
- pyqt5 隐藏任务栏图标
pyqt5中隐藏任务栏图标很简单,只需要一行代码即可. MainWindow.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.FramelessWi ...
- MFC程序隐藏任务栏图标的三种方法
在VC编程中,有时候我们需要将我们的程序在任务栏上的显示隐藏起来,我试过几种方法,下面我介绍一下我知道的三种方法. 第一种方法是设置窗口WS_EX_TOOLWINDOW扩展样式,通过在OnInitDi ...
- 服务器显示隐藏任务,在Windows 10中隐藏任务栏的简单方法
作为Windows用户,您可能已经注意到任务栏总是显示在屏幕上.对于某些用户来说,这可能是最令人欣慰的事情.但是,对于其余用户而言,全屏显示的任务栏很烦人.在这些人中,确实有一些人不知道可以随时隐藏它 ...
- 如何隐藏任务栏图标小结(zz)
如何隐藏任务栏图标小结 如原始任务栏图标如下图: A:彻底隐藏所有上图中已运行程序的小图标? [1]打开运行对话框: 输入gpedit.msc命令,如下: 然后确定: [2]弹出组策略窗口,依 ...
- 如何隐藏任务栏图标小结
如原始任务栏图标如下图: A:彻底隐藏所有上图中已运行程序的小图标? [1]打开运行对话框: 输入gpedit.msc命令,如下: 然后确定: [2]弹出组策略窗口,依次选择" ...
- Unity3D之Windows端隐藏任务栏图标并添加至托盘
目录 1 基本效果 2 代码实现 2.1 思路 2.2 实现 2.2.1 Unity程序监听最小化和关闭事件 2.2.2 方便打包的菜单栏 2.2.3 IL2CPP启动外部程序 2.2.4 winfo ...
- 如何使Windows 10中的任务栏图标居中
作为Windows用户,将任务栏放在屏幕截图的中心可能是访问常用应用程序的便捷方式.在这里,我们将讨论如何在Windows 10中集中任务栏图标. 窗口任务栏中的图标默认位于左侧.如果你想让他们找到中 ...
- 隐藏任务栏图标的两种简易方法
1.运用组策略隐藏任务栏图标 在"开始→运行"中输入"GPEDIT.MSC"打开组策略,然后依次选择"用户配置→管理模板→任务栏和开始菜单→隐藏通知区 ...
- mfc 内嵌 本地html,MFC程序中内嵌网页,附示例工程
最近在课程设计,因为小悠太懒了,是在不想用C++完成一些简单的文件上传下载操作,于是就想着将网页内嵌到程序中,上传下载神马的就直接使用网页Web来完成就好了,本示例中将演示在MFC程序中内嵌一个htm ...
最新文章
- apachebench ab.exe压力测试
- java培训第一阶段测试总结_java学习的第一阶段总结
- CVPR自动驾驶运动预测挑战赛:轻舟智航夺冠方案
- pandas滑动窗口滑动整个dataframe
- Chuck Norris蠕虫网络袭击Linux路由器
- Windows文件服务器搭建
- 电流纹波率取r = 0.4的原因 // 《精通开关电源设计》P48:r的最优值
- 优思学院|什么是TPM管理?
- 2021年美容师(初级)报名考试及美容师(初级)最新解析
- Noi 十连测 Zbox loves meizi
- 如何做好项目的验收工作?
- [c++] 计算太阳高度角
- 鱼那么信任水,水却煮了鱼
- Linux运维:Shell脚本实现ssh免密登录远程服务器
- fama matlab源码_Matlab:计算Fama Macbeth方法的HAC(Newey West)标准误差
- leetcode378. 有序矩阵中第K小的元素(Python3)
- 编码 data:text/html;c,javascript中Data URI使用详解
- 帝国CMS7.5仿《当下软件园》整站源码/帝国CMS软件下载类网站模板
- Vue - 简约大气 404 页面
- 透视:对企业内容管理的四个疑问
热门文章
- C语言(宏,内存,地址,指针,解引用)
- 五款开源内容管理平台对比(免费部分):bolo/fastadmin/wordpress/zblog/redmine
- 热门的智慧养老产品有哪些?解读新政策后的超全资料整合
- 深入计算机组成原理(二十)面向流水线的指令设计(上):一心多用的现代CPU
- vultr完美搭建 Nextcloud 私有云网盘教程
- Java输出100~999之间的水仙花数
- FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇尾
- 修改配置文件不用重启tomcat
- mysql数据库预处理_一种MySQL数据库中间件预处理方法与流程
- QVector元素增删改