如何使WebBrowser控件获得焦点? (300分)

  • 主题发起人 主题发起人 htw
  • 开始时间 开始时间
H

htw

Unregistered / Unconfirmed
GUEST, unregistred user!
我在本论坛已经查到以下代码, 不过对这几个函数应该如何引用不清楚
doverb 或者IHTMLwindow2 和ihtmlwindow4等分别需要uses那些单元呢?
我的问题比较急, 请诸位告知.


以下是我查到的代码:
使WebBrowser获得焦点

  TWebBrowser非常特殊,它从TWinControl继承来的SetFocus方法并不能使得它所包含的文档获得焦点,从而不能立即使用Internet Explorer本身具有得快捷键,解决方法如下:<

  procedure TForm1.SetFocusToDoc;
  begin
   if WebBrowser1.Document <> nil then
    with WebBrowser1.Application as IOleobject do
     DoVerb(OLEIVERB_UIACTIVATE, nil, WebBrowser1, 0, Handle, GetClientRect);
  end;

  除此之外,我还找到一种更简单的方法,这里一并列出:

  if WebBrowser1.Document <> nil then
   IHTMLWindow2(IHTMLDocument2(WebBrowser1.Document).ParentWindow).focus

  刚找到了更简单的方法,也许是最简单的:

  if WebBrowser1.Document <> nil then
   IHTMLWindow4(WebBrowser1.Document).focus

  还有,需要判断文档是否获得焦点这样来做:

  if IHTMLWindow4(WebBrowser1.Document).hasfocus then
 
//IHTMLwindow2 和ihtmlwindow4等分别需要uses那些单元呢?
MSHTML (Delphi自带)
or MSHTML_TLB (该文件在导入MSHTML这个ActiveX控件后产生)
 
后退
顶部