我有一个嵌入式IWebBrowser2控件使用直C++(窗口化,非窗口化),当有人点击Tab键浏览器中的字段之间时,它将焦点从Web浏览器中跳出。在IWebBrowser2控件中的Tab键支持
关于我需要实施什么或者我可能会搞砸的想法?
谢谢!
我有一个嵌入式IWebBrowser2控件使用直C++(窗口化,非窗口化),当有人点击Tab键浏览器中的字段之间时,它将焦点从Web浏览器中跳出。在IWebBrowser2控件中的Tab键支持
关于我需要实施什么或者我可能会搞砸的想法?
谢谢!
像tab这样的加速器键击在被分派之前由消息循环处理。由于这种钩子函数需要通过消息循环调用 - IOleInPlaceActiveObject::TranslateAccelerator iirc。 - 为控件提供键盘导航类型的机会。
我通过下面的链接解决了这个问题。
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();
}
我其实是有这个成立了,但我没有正确将它发送给控制。但这肯定是出了什么问题,谢谢你的帮助! – Bob 2010-05-05 20:10:03