DELPHI Webbrowser 响应回车键(EWB响应正常,无需额外代码)

来源:互联网 发布:centos 编译php7 编辑:程序博客网 时间:2024/05/17 19:15

增加一个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;


0 0
原创粉丝点击