4

我有一个使用直接 C++ 的嵌入式 IWebBrowser2 控件(有窗口,而不是无窗口),当有人按 Tab 键在浏览器中的字段之间切换时,它会将焦点从 Web 浏览器中跳出来。

关于我需要实施什么或我可能搞砸的任何想法?

谢谢!

4

2 回答 2

1

诸如 tab 之类的加速键击在被分派之前由消息循环处理。因此,需要通过消息循环调用挂钩函数 - IOleInPlaceActiveObject::TranslateAccelerator iirc。- 让控件有机会做键盘导航类型的事情。

于 2010-05-05T18:18:22.567 回答
0

我通过以下链接解决了这个问题。

http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/1f485dc6-e8b2-4da7-983f-ca431f96021f/

IWebBrowser2* iBrowser;
IOleInPlaceActiveObject* pIOIPAO;

hr = mpWebObject->QueryInterface(IID_IWebBrowser2,(void**)&iBrowser);
if ( SUCCEEDED(hr) )
{
iBrowser->QueryInterface(IID_IOleInPlaceActiveObject,(void**)&pIOIPAO);
          if ( SUCCEEDED(hr) )
          {
          pIOIPAO->TranslateAccelerator(msg);
                    pIOIPAO->Release();
          }
          iBrowser->Release();

}
于 2013-05-28T08:45:56.377 回答