增加一个ApplicationEvents,在Message事件中如下代码(WB看自己的WEBBROWSER 控件命名)
procedure TFrmMain.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); //专为IE内核 WEBBROWSER 响应回车键
const
StdKeys = [VK_TAB, VK_RETURN, VK_DELETE, VK_BACK]; { standard keys }
ExtKeys = [VK_LEFT, VK_RIGHT]; { extended keys }
fExtended = $01000000; { extended key flag }
begin
Handled := False;
with Msg do
if ((Message >= WM_KEYFIRST) and (Message <= WM_KEYLAST)) and
((wParam in StdKeys) or {$IFDEF VER120}(GetKeyState(VK_CONTROL) < 0) or {$ENDIF}
(wParam in ExtKeys) and ((lParam and fExtended) = fExtended)) then
try
if IsChild(WB.Handle, hWnd) then
{ handles all browser related messages }
begin
with WB.Application as IOleInPlaceActiveObject do
Handled := TranslateAccelerator(Msg) = S_OK;
if not Handled then
begin
Handled := True;
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
except
end;
end;

本文介绍了一种在Delphi中通过自定义ApplicationEvents来处理IE内核WEBBROWSER控件回车键的方法,通过特定的消息处理过程,能够使WEBBROWSER控件响应回车键。
1735

被折叠的 条评论
为什么被折叠?



