Tab key support in an IWebBrowser2 control

ⅰ亾dé卋堺 提交于 2019-12-18 08:57:15

问题


I have an embedded IWebBrowser2 control using straight C++ (windowed, not windowless) and when someone hits the Tab key to go between fields in the browser, it jumps focus out of the web browser.

Any ideas on what I need to implement or what I could be screwing up?

Thanks!


回答1:


Accelerator keystrokes like tab are handled by the message loop before being dispatched. As such a hook function needs to be called by a message loop - IOleInPlaceActiveObject::TranslateAccelerator iirc. - to give the control the chance to do keyboard navigation type things.




回答2:


I solved this problem by below link.

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

}


来源:https://stackoverflow.com/questions/2775447/tab-key-support-in-an-iwebbrowser2-control

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!