2010-05-05 57 views
4

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

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

谢谢!

回答

1

像tab这样的加速器键击在被分派之前由消息循环处理。由于这种钩子函数需要通过消息循环调用 - IOleInPlaceActiveObject::TranslateAccelerator iirc。 - 为控件提供键盘导航类型的机会。

+0

我其实是有这个成立了,但我没有正确将它发送给控制。但这肯定是出了什么问题,谢谢你的帮助! – Bob 2010-05-05 20:10:03

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(); 

}