我有一个嵌入式IWebBrowser2控件使用直接C ++(窗口化,而不是无窗口),当有人点击Tab键进入浏览器中的字段之间时,它会将焦点从Web浏览器中跳出。
关于我需要实施什么或者我可以搞砸的任何想法?
谢谢!
答案 0 :(得分:1)
像tab这样的加速键击在调度之前由消息循环处理。因此,需要通过消息循环调用钩子函数 - IOleInPlaceActiveObject::TranslateAccelerator iirc。 - 让控件有机会做键盘导航类型的东西。
答案 1 :(得分:0)
我通过以下链接解决了这个问题。
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();
}