在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样式,你可理解为这个窗口被设置成工具窗口,类似工具条。运行后效果如下:


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

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

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

  m_SkyLoginDlg.DoModal();    // show login dialog

效果如下:


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

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

MFC程序隐藏任务栏图标的三种方法相关推荐

  1. Java程序初始化启动自动执行的三种方法

    目录 @PostConstruct注解 CommandLineRunner接口 ApplicationRunner 接口 @Order注解设置启动顺序 分享一下自己用过的java程序初始化启动自动执行 ...

  2. 给li 标签平添图标的三种方法

     给li 标签添加图标的三种方法 1.使用CSS的特殊属性 ul{list-style-type:disc;} //disc的作用是在每个li前加一个黑点,其他常用的有square:黑色方块;no ...

  3. 隐藏任务栏图标的两种简易方法

    1.运用组策略隐藏任务栏图标 在"开始→运行"中输入"GPEDIT.MSC"打开组策略,然后依次选择"用户配置→管理模板→任务栏和开始菜单→隐藏通知区 ...

  4. 手机计算机桌面图标恢复,三种方法快速找回桌面图标(附电脑文件恢复教程)...

    三种方法快速找回桌面图标!大家应该都喜欢把自己经常用到的图标放到桌面上吧.当我们需要进行一些操作的时候,直接点击桌面上的图标就能进入相应的界面.大大节省了我们的时间,让我们的办公更加便捷.如果我们的桌 ...

  5. 微信小程序中使用 iconfont 图标的四种方法

    1. 先去 iconfont 官网选择自己需要的图标,添加到项目中 点击红框 在浏览器中输入地址,得到的文件另存为 iconfont.wxss,放入项目的根目录下 打开 app.wxss @impor ...

  6. c语言程序π,C语言求圆周率π(三种方法)

    题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止. 题目2) 根据公式②,用前100项之积计算π的值. 题目1)提供了一种解法,题目2)提供了两种解法,请看解析. 题目1) ...

  7. 使用阿里矢量图标的三种方法

    将你要使用的icon图标下载到本地 fontclass方式引用: 引入下载文件中的css文件与js文件 第二张方式symbol方式引用: 引用第一步 引用完成 第三张方法 三.unicode引用 第一 ...

  8. html+css两栏布局的三种方法

    一. 1. 左边div设置float:left 或者position: absolute 脱离文档流 2. 避免左边div遮住右边div,右边div设置margin-left:左边div的宽度 < ...

  9. 小程序图片转换Base64格式的三种方法

    一.使用小程序自带的网络请求 1.wx.request() 这种方式适合网络https路径图片,但无法解析wxfile://xxxx导致转化报错 image2Base64(imgUrl) {retur ...

最新文章

  1. seaborn clustermap详解及绘制
  2. 使用ffmpeg 的 filter 给图片添加水印
  3. 【转】Elasticsearch5.0 安装问题集锦
  4. xftp5安装注册教程
  5. android.os.NetworkOnMainThreadException问题
  6. JS - this,call,apply
  7. RGB to xml(labelimg应用)
  8. 7.Jenkins 权威指南 --- 分布式构建
  9. Python实现扫码工具
  10. 病毒RNA分离:病毒RNA提取试剂盒方案
  11. Windows 10, version 21H2 (released Nov 2021) 简体中文版、英文版(企业版)下载
  12. 记录一下中移物联网的一面(方向:前端开发)
  13. 支持GB28281协议的远程抓拍4G低功耗摄像头解决方案
  14. 网站流量日志数据分析系统(1)
  15. java需要记住什么英文_JAVA英语面试题(苦涩的记忆)
  16. 用于宏观经济数据分析的神经网络(Matlab代码实现)
  17. MySQL注册表删除
  18. 北大操作系统陈向群第十一章知识点
  19. 宇宙即计算~一种新科学:斯蒂芬·沃尔夫勒姆
  20. 利用格式化字符串漏洞实现任意地址读写

热门文章

  1. phpBB3导入版面的Python脚本
  2. c语言表达式1 4 2.75,东师C程序设计20秋在线作业1 2【标准答案】
  3. 面向智能网联汽车道路交通安全保障的交通规则和交通冲突测试验证研究 | 机动车登记查验...
  4. java二维数组杨辉三角_java数组学习:使用二维数组输出杨辉三角
  5. Clank – 快速构建移动 APP 原型的 HTML/CSS 框架
  6. PHP实现好友生日邮件提醒
  7. java swing中国象棋聊天室对战游戏
  8. tinyFlash:一种超轻量级的嵌入式单片机flash KV 数据存储方案
  9. win7 host文件的位置
  10. 温度自动控制系统c语言,基于STC89C52RC单片机的大棚温湿度自动控制系统毕业论文+外文翻译及原文+C程序+proteus仿真文件+Altium Designer原理图...