在BHO(C ++)中创建一个CAxWindow

时间:2013-09-26 15:11:38

标签: c++ internet-explorer com activex bho

我无法在我的BHO中打开一个新的CAxWindow,我可以看到“microsoft.com”的请求被解雇但没有显示窗口。 我尝试了很多不同的方法,这是我的最后一个,任何人都有一个线索是什么问题?

感谢。

CAxWindow m_axWindow;
CRect rc;
HWND wndIE = NULL;
m_pWebBrowser->get_HWND((SHANDLE_PTR*)&wndIE);
GetWindowRect(wndIE, &rc);
CSize sz = CSize(100, 200);
CRect rcPage = new CRect(10, 10, 10, 10);
m_axWindow.Create(wndIE, rcPage, _TEXT("http://www.microsoft.com"), WS_POPUP | WS_TABSTOP, 0, 0U, 0);
HRESULT hRet = m_axWindow.QueryControl(IID_IWebBrowser2, (void**)&m_pWebBrowser);

1 个答案:

答案 0 :(得分:0)

我认为m_axWindow.Create会创建一个子窗口。在通话结束后检查WS_CHILD的样式。您可能需要先创建一个普通的弹出式顶级窗口,然后使用该弹出窗口作为父窗口创建CAxWindow,而不是wndIE。确保在弹出窗口中也ShowWindow