分享

delphi 获得外部程序焦点

 独孤求财 2012-03-20

delphi 获得外部程序焦点

时间:2011-5-26来源:yang 作者: peng点击: 19次

问题的提出:
1,一后台运行的程序,在系统发生某一事件会后激活,使用SetWindowPos()虽然能窗口置为前台显示,总是不能获得输入焦点。
2,已知窗口的Handle,如何设定把焦点放到这个窗口上?
3,使窗体浮在系统的最上面。但没有焦点?
等等,诸如此类的问题,解决方案如下:

//如上所述窗口已经置前,但是没有获得焦点
SetWindowPos(mpForm->Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW);
//最为重要Application->Handle,即使在一个程序中,设置mpForm->Handle的Handle也是没有用的
SetForegroundWindow(Application->Handle);
//设置焦点控件
SetFocus(mpForm->UserList->Handle); //mpForm为Application下的窗体,UserList为要获得焦点的控件。  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多