将窗口置顶的方法:SetWindowPos、AttachThreadInput、SwitchToThisWindow

[转]http://hi.baidu.com/neil_danky/item/f9dca0ca36a79811515058d3

方法一:
使用定时器,然后在定时器响应函数中定时调用,SetWindowPos()函数,第一个参数写HWND_TOPMOST

方法二:
因为2000/XP改变了SetForegroundWindow的执行方式,不允许随便把窗口提前,打扰用户的工作。可以用附加本线程到最前面窗口的线程,从而欺骗windows。

AttachThreadInput(GetWindowThreadProcessId(::GetForegroundWindow(),NULL), GetCurrentThreadId(),TRUE); 
SetForegroundWindow(); 
SetFocus(); 
AttachThreadInput(GetWindowThreadProcessId(::GetForegroundWindow(),NULL), GetCurrentThreadId(),FALSE);

方法三:

如何激活指定的窗口事件    ●    
           我们知道,Windows    9x/2000中SetForegroundWindow函数当用户正在操作其他窗口时是不能强制某个窗口为前景窗口的,而是激活窗口并调用FlashWindowEx函数来通知用户。但是很多实际情况要求将激活窗口的同时将创建这个窗口的线程置为前景状态。碰到这种情况我们可以使用USER32.DLL中的几个未公开API函数。    
   void    SwitchToThisWindow    (    
   HWND    hWnd,        //    被激活的窗口句柄    
   BOOL    bRestore    //    如果被极小化,则恢复窗口    
   );    
   必须动态加载这个函数。    
   typedef    void    (WINAPI    *PROCSWITCHTOTHISWINDOW)    (HWND,    BOOL);    
   PROCSWITCHTOTHISWINDOW    SwitchToThisWindow;    
   HMODULE    hUser32    =    GetModuleHandle("user32");    
   SwitchToThisWindow    =    (    PROCSWITCHTOTHISWINDOW)    
   GetProcAddress(hUser32,    "SwitchToThisWindow");        
   接下来只要用任何现存窗口的句柄调用这个函数即可,第二个参数指定如果窗口极小化,是否恢复其原状态。    
   SwitchToThisWindow(hWnd,    TRUE);

将窗口置顶的方法:SetWindowPos、AttachThreadInput、SwitchToThisWindow相关推荐

  1. C# SetWindowPos窗口置顶使用说明

    就是有时候窗口不能够成功置顶,这时需要重新切换下标签,就可以置顶了,本文介绍C# SetWindowPos实现窗口置顶的方法: [DllImport("user32.dll", C ...

  2. VS2017 + Qt设置窗口置顶与不置顶的注意问题

    Qt中默认的设置窗口置顶的方法是: Qt::WindowFlags flag = windowFlags(); setWindowFlags(flag | Qt::WindowStaysOnTopHi ...

  3. qt窗口置顶linux环境下,Qt 实现窗口置顶与取消置顶

    原生的Qt 实现窗口置顶的方法 setWindowFlags(Qt::WindowStaysOnTopHint); 目前还不知道怎么实现取消窗口置顶,还请知道使用的哥们分享. 我通过window AP ...

  4. VS2017 + Qt 设置窗口置顶与取消置顶

    Qt5.12.9中默认的设置窗口置顶/取消置顶的方法 this->setWindowFlag(Qt::WindowStaysOnTopHint, true); // 置顶this->set ...

  5. 计算机窗口置顶,将想要的窗口一直置顶的具体操作步骤介绍

    很多时候,我们想在电脑上同时进行多步操作,想要使某一个窗口不被其它操作窗口所覆盖,该怎么操作呢?当我们同时打开多个窗口时,将想要的窗口进行置顶,使它显示在最前排,那么无论我们怎么切换界面,它都不会被覆 ...

  6. 【QT学习】如何隐藏标题栏、任务栏图标及子窗口置顶?(附常用窗口标志)

    文章目录 前言 一.标题栏隐藏 二.子窗口置顶 三.任务栏图标隐藏 四.单击任务栏图标显示(隐藏)窗口 附:QT常用窗口标志 总结 前言    本篇,将介绍如何隐藏窗口标题栏.任务栏图标以及子窗口置顶 ...

  7. C#SetWindowPos窗口置顶

    C#SetWindowPos窗口置顶 [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern ...

  8. 说说WinCE的WS_EX_TOPMOST和窗口置顶显示

    //======================================================================== //TITLE: //    说说WinCE的WS ...

  9. Pyqt5 按键窗口置顶与取消置顶

    通过checkbox 选项调用setWindowFlags触发 窗口置顶 时,发现窗口消失了 解决方式一:通过 win32  调用 setwinowPos 方法 import sys import w ...

最新文章

  1. python数组文件_python数组
  2. 【转】头文件和库文件区别
  3. 启明云端分享|SSD20X 如何使用SD卡根文件系统
  4. 1616: 最长回文串(马拉车算法)
  5. SAP UI5 Mock server,为什么运行时无法返回 JSON 类型的测试数据?
  6. JAVA知识学习——类的修饰符
  7. PHP培训选云和数据,送给云和数据郑州分中心PHP培训班全体学员的祝福
  8. c标签判断true false jsp_Java学习知识点:小白如何掌握JSP技术?
  9. HTTP Error: 413 Request Entity Too Large的解决
  10. js基础--javascript基础概念之函数
  11. php和python_c语言,python和c语言的主要区别
  12. Linux shell脚本基础学习(上)
  13. java 认证 种类_java认证:JavaSocket编程的一个秘密类
  14. 用计算机将复数转换成角度,卡西欧FX-991ES计算器能计算电路里的复数加减乘除然后换算成角度吗?...
  15. Flink服务的HA配置
  16. 高项、高级项目管理师论文-人力资源管理
  17. 智能眼镜的“减熵式增长”
  18. Crowd 和 JIRA、Confluence、Fisheye and Crucible共享账户集成登入
  19. 小心被举报!考研复试后不要分享考试内容!
  20. N子棋的实现方法,包括三子棋,五子棋

热门文章

  1. 18位身份证编制规则《一》
  2. 医药之家:高景气度将延续!医疗器械行业迎政策利好
  3. Linux的时间修改并永久生效
  4. 20个令人惊叹的深度学习应用(Demo+Paper+Code)
  5. line拉群群发漏洞
  6. 高速PCB 阻抗计算
  7. 瑞安市计算机技术学校,瑞安市第七中学2019年招生简章
  8. python论坛系统源码_十个基于Python的BBS论坛类开源web框架汇总(附源码地址
  9. 四旋翼无人机仿真之hector_quadrotor无人机(ROS + Gazebo)(一)
  10. C++程序设计案例实训教程第2章(qq讨论群112133686)