返回有输入焦点的窗口句柄(一般为控件)
| HWND GetFocus(); |
如果要返回其他程序的活动控件,源码如下(DELPHI)
// 获取屏幕上活动窗口中,具有输入焦点的控件句柄
function TForm1.GetActiveEdit : HWND;
var
h : HWND;
FormThreadID, CWndThreadID : DWORD;
begin
result := 0;
// 得到当前活动窗口
h := GetForegroundWindow;
if (h = Handle) then
begin
result := GetFocs;
exit; // 排除程序本身的窗口
end;
// 本程序的线程ID
FormThreadID := GetCurrentThreadId;
// 当前窗口的线程ID
CWndThreadID := GetWindowThreadProcessId(h, nil);
// 附加输入线程
AttachThreadInput(CWndThreadID, FormThreadID, true);
// 得到当前键盘光标所在的窗口
result := GetFocus;
// 取消附加的输入线程
AttachThreadInput(CWndThreadID, FormThreadID, false);
end;
|