我想发送几个按键消息到当前具有输入焦点的编辑控件中,应如何实现?
如果我用GetForegroundWindow找到当前前景窗体后,往这个窗体发送按键消息,窗体却无响应消息。根据Spy++探测我发过去的消息所知,这个窗体虽然收到了消息,但是具体接受按键消息的并不是该窗体,而是窗体里面的获有焦点的控件。
可能大家还不太明白我的意思,举个例子,像我要发送消息到记事本里面,我找到了记事本这个窗体,但我发送"s"按键消息给这个窗体时,记事本并没有显示我发送过去的按键"s",因为真正要获取按键的并不是这个窗体,而是这个窗体里的一个EDIT控件。如果说我继续往里查找这个EDIT控件虽然可以实现消息发送,但是我并不是针对记事本一个软件,我是想要做一个通用型的,当前哪个控件具有键盘输入特性,我就发送到哪个控件当中
如果我用GetForegroundWindow找到当前前景窗体后,往这个窗体发送按键消息,窗体却无响应消息。根据Spy++探测我发过去的消息所知,这个窗体虽然收到了消息,但是具体接受按键消息的并不是该窗体,而是窗体里面的获有焦点的控件。
可能大家还不太明白我的意思,举个例子,像我要发送消息到记事本里面,我找到了记事本这个窗体,但我发送"s"按键消息给这个窗体时,记事本并没有显示我发送过去的按键"s",因为真正要获取按键的并不是这个窗体,而是这个窗体里的一个EDIT控件。如果说我继续往里查找这个EDIT控件虽然可以实现消息发送,但是我并不是针对记事本一个软件,我是想要做一个通用型的,当前哪个控件具有键盘输入特性,我就发送到哪个控件当中
解决方案 »
- 为什么我设置全局快捷键 ,瑞星都是报病毒?
- 回报回报,问个问题先!~~~~
- 请高手帮忙怎么样在Dbgrid中动态显示当前新增的记录(新手提问)
- 寻求帮助
- 请问我做单机版的程序,用容量很大(100万-500万),请问用什么数据库?我用Delphi6.0做程序.
- 请问怎样导出 OUTLOOK 的地址薄 到我的程序中去呢???救急!
- 自定义报表预览时,如何按点一下鼠标便放大或缩小?qrpreview控件
- 急!!!先有一Delphi信息管理系统,求添加登录窗体方法。。。
- C++builder的Object Inspector是怎么做的?
- 高分求教:关于sqldmo
- 有关ExpressBars的使用问题?
- 发布一个很好的电子书站地址
h2 = ::FindWindowEx(h1, NULL, "Edit", NULL);
if ( h2 <> NULL)
{
::SendMessage(h2, WM_SETTEXT, 255, (LPARAM)"AAAA");
}
// 这个h2就是 这个接收消息的句柄
// 上面代码为VC代码 经测试可以运行 DELPHI也差不多。。
只有遍历控件类名来找输入框了。VC的是EDIT,DELPHI的是TEDIT,VB的是ThunderRT6TextBox。找到这样的控件,就往里发消息吧。得到主窗体的句柄后用AAA=GetWindow(句柄, GW_CHILD)取得第1个控件的句柄,加循环While AAA > 0 DO,GETCLASSNAME取类名,最后 AAA=GetWindow(AAA, GW_HWNDNEXT) ,结束循环。基本没什么问题了。