本人学着做了个IE的工具条,现在有个问题,就是按Tab键焦点不能移到我的工具条中的编辑框中,Google的就可以,这是为什么,大家给点思路.
谢谢。

解决方案 »

  1.   

    In form's "keypress" event,insert the code below:if(key=#9)
      key:=#0;OK,isn't it?
      

  2.   

    楼上的可能理解错的我意思了,例如我的IE装有Google的工具条和我自己的工具条,在IE中按Tab键次序应该是地址栏》Google工具栏中的输入框》我的工具栏中的输入框》IE的页面内容,现在情况是次序只在地址栏与Google栏和页面框传递,不能进入我的工具条中的输入框,但在我的工具条输入框中可以移出去。
      

  3.   

    STDMETHODIMP CMyBand::UIActivateIO(BOOL fActivate, LPMSG lpMsg)
    {
     if (fActivate)
     {
      SetFocus();
      GotFocus();
      if (lpMsg)
      {
       TranslateAcceleratorIO(lpMsg);
      }
     }
     else
     {
      CComQIPtr<IOleInPlaceObject> spInPlaceObj = m_spUIBrowser;
      if (spInPlaceObj)
      {
       spInPlaceObj->UIDeactivate();
      }
     }
     return S_OK;}STDMETHODIMP CMyBand::HasFocusIO()
    {
     CWindow wndFocus = GetFocus();
     return (IsChild(wndFocus) ? S_OK : S_FALSE);}STDMETHODIMP CMyBand::TranslateAcceleratorIO(LPMSG lpMsg)
    {
     if (WM_KEYFIRST <= lpMsg->message && lpMsg->message <= WM_KEYLAST &&
      !IsCtrlN(lpMsg))
     {
      BOOL bHandled = SendMessage(WM_FORWARDMSG, 0,
    reinterpret_cast<LPARAM>(lpMsg));
      if (bHandled)
      {
       return S_OK;
      }
     }
     return S_FALSE;}// Handler for WM_PARENTNOTIFY event
    void CMyBand::OnParentNotify(UINT uMsg, UINT, LPARAM)
    {
     if (WM_MOUSEFIRST <= uMsg && uMsg <= WM_MOUSELAST)
     {
      GotFocus();
     }
     SetMsgHandled(FALSE);}void CMyBand::GotFocus()
    {
     if (m_spInputSite)
     {
      m_spInputSite->OnFocusChangeIS(GetUnknown(), TRUE);
     }}
      

  4.   

    function TDemoDeskBand.TranslateAcceleratorIO(var lpMsg: TMsg): HResult;
    begin
        if (lpMsg.WParam <> VK_TAB)  then
            begin
            if (lpMsg.wParam < 128) then
                begin
                TranslateMessage(lpMSg);
                DispatchMessage(lpMsg);
                Result := S_OK;
                end
            else
                Result := s_false;
            end
        else
            begin
            Result := S_ok;
            end;
    end;function TDemoDeskBand.UIActivateIO(fActivate: BOOL;
      var lpMsg: TMsg): HResult;
    begin
        FHasFocus := fActivate;
        FocusChange(HasFocus);
        if HasFocus then
            if BandForm <> nil then
                BandForm.SetFocus;
        Result := S_OK;
    end;function TDemoDeskBand.HasFocusIO: HResult;
    begin
        Result := Integer(not HasFocus);
    end;procedure TDemoDeskBand.FocusChange(bHasFocus: Boolean);
    begin
        if Site <> nil then
            Site.OnFocusChangeIS(Self, bHasFocus);
    end;procedure TDemoDeskBand.BandWndProc(var Message: TMessage);
    begin
        if (Message.Msg = WM_PARENTNOTIFY)  then
            begin
            FHasFocus := True;
            FocusChange(HasFocus);
            end;
        SavedWndProc(Message);
    end;
    以上是我的代码,好像差不多,就UIActivateIO不一样多些,难道问题在这个里面