+ -
当前位置:首页 → 问答吧 → 怎么获取激活窗口的输入焦点?

怎么获取激活窗口的输入焦点?

时间:2011-11-24

来源:互联网

我想在其他程序的控件上输出字符,使用的是
GetCursorPos(&Point);
hWnd = WindowFromPoint(Point);
SendMessage(hWnd, WM_CHAR, 'AAA', 0);
有的窗口可以,有的又不行,请问有什么好的方法获取焦点控件?

作者: txz_yshb   发布时间: 2011-11-24

GetFocus()->GetSafeHwnd()

作者: huangxvhui88   发布时间: 2011-11-24

引用 1 楼 huangxvhui88 的回复:

GetFocus()->GetSafeHwnd()


试过了,GetFocus()返回为NULL

作者: txz_yshb   发布时间: 2011-11-24

GetForegroundWindow

作者: huangxvhui88   发布时间: 2011-11-24

引用 3 楼 huangxvhui88 的回复:

GetForegroundWindow

比如对于一个记事本
GetForegroundWindow()之后再
SendMessage(hWnd, WM_CHAR, 'A', 0);
根本就不会显示输入'A',因为接受消息的是notepad.exe外面的框架,必须先得到焦点控件句柄

不知道您明白没有,没有想象的那么简单

作者: txz_yshb   发布时间: 2011-11-24

噢 大体清楚了 你也可以 先GetForgroundWindow()然后判断是否跟外面框架的m_hWnd相等 然后 用SetFocus来强制设置焦点然后再调用你的SendMessage(hWnd, WM_CHAR, 'A',0);你这个问题 我好像遇到过 待会查下以前的代码 看下还在不。

作者: huangxvhui88   发布时间: 2011-11-25

热门下载

更多