为什么PeekMessage输入法的文字会无效?

life923 2009-01-11 07:12:01
我在做一个输入法自动翻译的程序
我用
PeekMessage(Msg,PMsg(lParam)^.hwnd,WM_CHAR,WM_CHAR,PM_NOYIELD or PM_REMOVE);

取消输入法输入的文字, 比如输入"我们" 编辑窗口 不显示

为什么对QQ聊天窗口无效呢?

在其他编辑窗口 如记事本等 都没有问题.
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qrlvls 2009-01-15
  • 打赏
  • 举报
回复
QQ 用的是 DirectUIHWND
百度的搜索框参考 IHTMLEditElement
无条件为你 2009-01-13
  • 打赏
  • 举报
回复
procedure TForm1.RichEdit1Change(Sender: TObject);
var i:integer;
begin
i:=pos('GOOD',RichEdit1.Lines.Text);
if i=0 then exit;
RichEdit1.SelStart:=i-1;
RichEdit1.SelLength:=length('GOOD');
SendMessage(RichEdit1.Handle,EM_REPLACESEL,0,INTEGER(PCHAR('好的')));
end;

上述代码可以实现自己RichEdit中的。QQ的需要用API来实现,有些麻烦。
百度的搜索框跟QQ根本不是一回事,百度搜索框如果你要,我可以给你写出来。
外部的网页需要用到iwebbrowser2接口,你在网上搜一下就知道了。
life923 2009-01-12
  • 打赏
  • 举报
回复
发现不仅是QQ窗口 , 百度的搜索框也不行
life923 2009-01-11
  • 打赏
  • 举报
回复
我要实现的效果是这样的

输入法自动翻译
比如在输入法输入"GOOD" 然后在窗口出现"好的"

不知道方向有没有对
life923 2009-01-11
  • 打赏
  • 举报
回复
上面我写错了

这是VC的PeekMessage

::PeekMessage(0, pcmsg->hwnd, WM_CHAR, WM_CHAR, PM_NOYIELD | PM_REMOVE);

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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