我有一個嵌入式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