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


    方法一:
    使用定时器,然后在定时器响应函数中定时调用,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);   

  • 相关阅读:
    JavaScript 深入之从原型到原型链(转载)
    Javascript 异步加载详解(转载)
    JavaScript 运行机制(转载)
    js学习总结----数据类型检测的四种方式(转载)
    GitHub常用指令
    项目部署到linux云服务器最简单的方式
    把MongoDB写成服务
    浏览器中的事件循环
    使用Nodejs计算文件夹中所有文件的大小
    前端web模块化开发之ESModules
  • 原文地址:https://www.cnblogs.com/crazypebble/p/2681857.html
Copyright © 2020-2023  润新知