zoukankan      html  css  js  c++  java
  • 有关焦点窗口最前

    1、以下几个函数,均可以获取当前的焦点所在程序的句柄,只是获取的焦点信息不一样。

    GetForegroundWindow

    GetActiveWindow

    GetFocus

    2、GetForegroundWindow和GetActiveWindow的区别

    GetForegroundWindow指最前的窗口,但是最前的窗口不一定是激活的...比如说qq的主窗口,只要不靠到屏幕边上,就是总在最前的,你拖放一个ie过去是挡不住的,这时候,用GetActiveWindow得到的是有焦点的ie窗口,用GetForegroundWindow得到的是最前的qq窗口
    ————————————————
    版权声明:本文为CSDN博主「活最好的自己」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lz465350/article/details/40741863

    获取活动窗口输入焦点控件句柄的方法_leevans的专栏-CSDN博客

    GetForegroundWindow函数只能获取Windows当前焦点窗口(也可以叫活动窗口)的句柄,如果需要获取该窗口中焦点控件句柄,就需要用到下面这段代码:

    HWND hForeWnd = GetForegroundWindow();//获得当前激活的窗口句柄

    DWORD dwSelfThreadId = GetCurrentThreadId();//获取本身的线程ID

    DWORD dwForeThreadId = GetWindowThreadProcessId(hForeWnd, NULL);//根据窗口句柄获取线程ID

    AttachThreadInput(dwForeThreadId, dwSelfThreadId, true);//附加线程

    HWND hFocus = GetFocus();//获取具有输入焦点的窗口句柄

    AttachThreadInput(dwForeThreadId, dwSelfThreadId, false);//取消附加的线程

    hFocus就是焦点控件的句柄。

    需要说明的一点,在测试过程中,以上代码对网页不起作用,其它窗口OK!

    另外需要提醒一下,GetForegroundWindow 和 GetActiveWindow 函数的区别:
    GetActiveWindow 只是获取当前程序中(严格地说是线程中)被激活的窗口
    GetForegroundWindow 是获取当前系统中被激活的窗口
    两个函数的级别是不一样的, 一个是线程级、一个是系统级。

     

  • 相关阅读:
    jackson 解析json含有不规则的属性的json字符串的方法
    swift入门-实现简单的登录界面
    github git.exe位置
    linux之SQL语句简明教程---IN
    怎么样才算是精通 C++?
    BZOJ2028: [SHOI2009]会场预约(set)
    BZOJ1058: [ZJOI2007]报表统计(set)
    洛谷P2391 白雪皑皑(并查集)
    BZOJ4514: [Sdoi2016]数字配对(费用流)
    BZOJ3143: [Hnoi2013]游走(期望DP 高斯消元)
  • 原文地址:https://www.cnblogs.com/zhangmo/p/15292263.html
Copyright © 2011-2022 走看看