IWebBrowser2控件中的Tab键支持

时间:2010-05-05 17:34:22

标签: winapi iwebbrowser2

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

像tab这样的加速键击在调度之前由消息循环处理。因此,需要通过消息循环调用钩子函数 - IOleInPlaceActiveObject::TranslateAccelerator iirc。 - 让控件有机会做键盘导航类型的东西。

答案 1 :(得分: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();

}