zoukankan      html  css  js  c++  java
  • 怎样让窗口不显示在任务栏和ALT+TAB中(隐藏窗口再嵌套,几乎是万能的办法)

    之前想弄个像QQ旋风那样的悬浮窗口,就研究了下怎么让窗口不显示在任务栏中,方法其实很简单就是将窗口的扩张属性设置成WS_EX_TOOLWINDOW,MSDN中对该属性有详细介绍,代码如下:

    ::SetWindowLong(m_hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW );

    但是这样一来窗口的其他的扩展属性不管有没有,肯定是全没有,因此可以用下面的方法保留窗口的其他扩展属性:

    DWORD dwExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);  
    dwExStyle |= WS_EX_TOOLWINDOW;  
    ::SetWindowLong(m_hWnd, GWL_EXSTYLE, dwExStyle);

    不过上面的代码并不能达到目的,也就是任务栏中仍然有显示,后来研究发现只有去掉了WS_EX_APPWINDOW这个扩展属性才能两个目的都能完全达到,代码如下:

    DWORD dwExStyle = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);  
    dwExStyle |=  WS_EX_TOOLWINDOW;
    ::SetWindowLong(m_hWnd, GWL_EXSTYLE, dwExStyle & ~WS_EX_APPWINDOW);

    我在网上看过一种方法是先创建一种隐藏窗口,然后以这个隐藏窗口为父窗口再创建一个子窗口,是的,任务栏是没有显示了,但是你用ALT+TAB还是看得到,要彻底隐藏,这个时候只需再给这个子窗口设置一个WS_EX_TOOLWINDOW属性就可以了。

    另外还有一个WS_EX_LAYERED  的使用,当你需要修改窗口的透明度时必须给窗口加上该属性。

    注:上面的代码可以加在OnInitDialog()里面测试

    http://blog.csdn.net/magictong/article/details/3486744

  • 相关阅读:
    说到算法怎么可以少了排序呢~
    常用的re正则
    书到用时方恨少-- 正则,待修
    闲逛各个牛人的博客,观后感
    二叉树:B+tree等
    列表,链表,队列
    简述各种锁
    MongoDB
    python爬虫基础应用----爬取无反爬视频网站
    Django缓存管理的6种方法
  • 原文地址:https://www.cnblogs.com/findumars/p/6145969.html
Copyright © 2011-2022 走看看