马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
BUG反馈。窗口获取键盘焦点所在句柄() 的错误。
所在目录:windows平台,api详解,窗口目录。
窗口获取键盘焦点所在句柄(),这函数获取的,是不知名的句柄,并非获取键盘输入焦点的句柄。
例如:
游戏窗口的喊话框,
记事本的编辑框,
系统计算器的输入框。
窗口获取键盘焦点所在句柄(),VC++代码如下:
获取键盘输入焦点_控件句柄的方法。(转载)
作者:leevans
发表于2012/3/4 15:31:14 1724人阅读
分类: SDK/API
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!
建议修复。
|