打开notepad,把焦点定位在文本框中,请问现在怎么取得焦点所在的文本框的Handle?

magiclee 2003-04-19 07:12:42
rt
...全文
110 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
magiclee 2003-05-05
  • 打赏
  • 举报
回复
搞定.
magiclee 2003-04-30
  • 打赏
  • 举报
回复
up
magiclee 2003-04-27
  • 打赏
  • 举报
回复
WindowFromPoint是取鼠标指针下的Hwnd,但如果焦点在一个文本框内,鼠标不在文本框内,这时怎么取拥有输入焦点的文本框的Hwnd呢?
智商无下限 2003-04-21
  • 打赏
  • 举报
回复
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var p:Tpoint;
h:hwnd;
begin
p.X:=x;
p.Y:=y;
h:=WindowFromPoint(p);
end;
纯冰糖 2003-04-21
  • 打赏
  • 举报
回复
windowformpoint,等等吧,如果要在后台运行,可以选择插入当前线程去得到句柄,具体的函数不记得了,去看看msdn,好像是:AttachThreadInput几个函数需要配合使用的
xiaoyuer0851 2003-04-20
  • 打赏
  • 举报
回复
同意
papaya_stone 2003-04-20
  • 打赏
  • 举报
回复
可以用GetFocus();
除非你的程序在后台运行,否则的话焦点会在你的程序中。
magiclee 2003-04-20
  • 打赏
  • 举报
回复
有没有可以直接获取当前焦点所在的窗口(包括控件)的API?
比如焦点落在任意一个程序的任意一个文本框内,如何获得这个文本框的Handle??
papaya_stone 2003-04-19
  • 打赏
  • 举报
回复
sorry上面的有问题。

procedure TForm1.Button1Click(Sender: TObject);
var
s1: string;
hwndEdit,hwndNotepad: HWND;
begin
s1 := 'Hello!';
ShowMessage(s1);
hwndNotepad := FindWindow(0,PChar('无标题 - 记事本'));
hwndEdit := FindwindowEx(hwndNotepad,0,'Edit',0);
//SetWindowText(hwndEdit,PChar(s1));
SendMessage(hwndEdit,WM_SETTEXT,0,lParam(PChar(s1)));
end;
papaya_stone 2003-04-19
  • 打赏
  • 举报
回复
FindWindowEx(GetActiveWindow(),0,'Edit',0);

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧