我在自己的程序中发送消息给给第三方程序的Edit编辑框,文本能够发送成功,但是“VK_Return”却无法成功,调试了三天还是没有搞懂原因!请大家看看我的代码是否有错?
************************************************************************
var
vHandle, ChildHandle: HWND;
vPath: Array[0..255] Of Char;
begin
vPath := '我的文本';
if Msg.Msg = WM_MYMESSAGE then
begin
vHandle := GetHWnd;
ChildHandle := GetChildHWnd;
SendMessage(ChildHandle, WM_SETTEXT, 0, Longint(@vPath));
//SetActiveWindow(vHandle);
//SetForegroundWindow(Handle);
SendMessage(vHandle, WM_SETFOCUS, 0, 0);
SendMessage(ChildHandle, WM_KEYDOWN, 0, VK_RETURN);
SendMessage(ChildHandle, WM_KEYUP, 0, VK_RETURN);
end;
end;
vHandle为第三方程序接收消息的窗体,同时 ChildHandle 为该窗体上的Edit控件,上面的
SendMessage(ChildHandle, WM_SETTEXT, 0, Longint(@vPath));发送正常,但是下面的
SendMessage(ChildHandle, WM_KEYDOWN, 0, VK_RETURN);
SendMessage(ChildHandle, WM_KEYUP, 0, VK_RETURN);
不知道为什么老是没有反应!
照道理这段代码是正确的啊,但是就是没有反应!
我跟踪调试发现在WM_SETTEXT消息后该窗体句柄就失去焦点,唉~
总的来说就不清楚为什么会这样,大家帮帮忙吧!
这里先谢谢了!