C++隐藏任务栏图标

摘要:
第二种方法更复杂。您可以参考VC知识库中的文章“如何隐藏任务栏中显示的对话框程序”。以上三种方法目前我都在使用。他们可以隐藏任务栏图标。朋友们有很好的方法可以与我们分享。

在VC编程中,有时候我们需要将我们的程序在任务栏上的显示隐藏起来,我试过几种方法,下面我介绍一下我知道的三种方法。

  第一种方法是设置窗口WS_EX_TOOLWINDOW扩展样式,通过在OnInitDialog函数中添加如下代码:

  ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);

  ModifyStyleEx函数原型如下:

    BOOL ModifyStyleEx(
        DWORD dwRemove,
        DWORD dwAdd,
        UINT nFlags = 0 );

  第一个参数是要被去掉的扩展样式,如果设为0或NULL,则不去除任何样式;第二个参数类似,设置要添加的扩展样式;第三个参数默认为0,表示不调用SetWindowPos函数,如果设为true或非0,表示之后会调用SetWindowPos函数。上述代码为窗口添加了WS_EX_TOOLWINDOW样式,同时去掉了WS_EX_APPWINDOW样式,你可理解为这个窗口被设置成工具窗口,类似工具条。运行后效果如下:

MFC程序隐藏任务栏图标的三种方法
通过这种方式隐藏程序在任务栏中的显示存在几个问题,第一个是程序的标题栏因为WS_EX_TOOLWINDOW样式的关系变窄了,和普通的程序标题有所区别;第二个问题是在按下alt+tab键进行程序切换时,在任务候选列表中找不到这个程序。

  第二种方法比较复杂,各位看官可以参考VC知识库的这篇文章《如何隐藏显示在任务栏中的对话框程序》。这种方法提到几点:第一、创建对话框时必须将它作为某个不可见框架窗口的子窗口;第二、这个不可见窗口的扩展式样必须设置 WS_EX_TOOLWINDOW;第三、保证对话框的扩展式样没有设置 WS_EX_APPWINDOW;对比第一种方法,区别是这里用了两个具有父子关系的窗口来实现这种效果,我应用这种方法隐藏了程序在任务栏中的显示,而且这里显示的窗口标题栏是正常的样式。但也发现一个问题,在按下alt+tab键进行程序切换时,在任务候选列表中显示的程序图标不是程序原来设置的图标,另我发现打开QQ登录界面按下alt+tab键看到的也是这种情况,(注:新版本QQ2011已修正,另如果什么都不做,只去掉WS_EX_APPWINDOW样式,也可以隐藏程序在任务栏中的显示,但按下alt+tab组合键后,切换程序列表中将找不到你的窗口程序)如下图:

MFC程序隐藏任务栏图标的三种方法

  第三种方法很简单,在资源里添加一个Dialog,添加一个对应的窗口类,在主对话框的OnInitDialog中添加这两句代码:
  CSkyLoginDlg m_SkyLoginDlg;

  m_SkyLoginDlg.DoModal();    // show login dialog

效果如下:

MFC程序隐藏任务栏图标的三种方法
用这种方法达到隐藏任务栏图标的目标,而且按下alt+tab键在任务候选列表中显示正常。为使这个子窗口关闭整个程序跟着退出,可以在最后m_SkyLoginDlg.DoModal();后添上OnCancel()函数。

 

  以上三种方法都是目前我用过的,能隐藏任务栏图标的,各位朋友有好的方法欢迎跟贴交流分享一下。

注:本文转载自 https://blog.csdn.net/lonelyrains/article/details/40195085

免责声明:文章转载自《C++隐藏任务栏图标》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用adb命令组装PowerShell实用小工具——Android测试小助手远程调用丢失请求头与定义RequestInterceptor下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Qt5 任务栏托盘功能实现

23333 有一阵子没写博客了,研究了挺长时间qt,学到任务栏托盘时简直无语,网上找得到的代码大多是废码,Qt5不支持或者本身就有毛病不能实现却被n多人转来转去的,甚是无语。 简单托盘功能以下在Qt5.5编译通过: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow>...

Ubuntu下pycharm设定任务栏图标后打开出现问号图标

事情是这样的: ubuntu16.04,安装好pycharm后,bin下只有一个sh执行文件,想要弄成任务栏图标,所以在/usr/share/applications下新建文件pycharm.desktop并输入系列信息保存: [Desktop Entry] Type=Application Name=Pycharm Comment=pycharm Cli...

MATLAB相关快捷键以及常用函数

MATLAB快捷键大全 F1帮助F2改名F3搜索 F4地址 F5刷新F6切换F10菜单CTRL+A全选CTRL+C复制CTRL+X剪切CTRL+V粘贴CTRL+Z撤消CTRL+O打开SHIFT+DELETE永久删除DELETE删除ALT+ENTER属性ALT+F4关闭CTRL+F4关闭ALT+TAB切换ALT+ESC切换ALT+空格键窗口菜单CTRL+ES...

winxp注册表之开始菜单和任务栏

WINDOWS的开始菜单突然不能保留最近访问程序的记录,用起来很是不方便。因此在网上找了好久却没有找到。 这次查到相关的资料,留存下来。 21. 如何去除“开始”菜单中的“收藏夹”菜单 用于从“开始”菜单中去除“收藏夹”菜单。 具体操作步骤如下: (1)打开注册表编辑器,找到如下表所示的项。 (2)按照下表设置,新建或者修改已有的一个名称为“NoFavor...

如何美化windows桌面

如何美化windows桌面 一、总结 一句话总结: 主要使用如下5个软件:Porcelain 主题&图标;Fences整理桌面;WallpaperEngine动态壁纸;StartlsBack自定义菜单和任务栏;Rainmeter桌面控件; 二、如何美化windows桌面 桌面效果 1、资料 参考:https://www.zhihu.com/qu...

一个体验好的Windows 任务栏缩略图开发心得

本文来自网易云社区 作者:孙有军 前言: 对于一个追求极致体验的软件来说,利用好系统的每一点优秀的特性,将会大大提高软件的品质。 Windows vista以来任务栏缩略图,及Win + TAB的程序切换预览图的定制也是对软件体验的一个巨大提升,这里我对云音乐中使用到的任务栏缩率图显示专辑封面,并且控制播放歌曲操作的开发做下简单的分享。 缩...