100送上求如何动态生成IWebBrowser
目的: 点一个按钮后,生成一个WebBrowser的对象,并且让他在dialog里显示出来。
我找了几种办法,都无法实现。。。。请大家帮忙!!!!
对话框上已有一个webbrowser的控件,IDC_EXPLORER1
方法1:
CWebBrowser2 * pbrowser = new CWebBrowser2;
pBrowser->Create("",WS_VISIBLE,CRect(0,0,20,20),NULL,IDC_EXPLORER1,0,0,0);
// Create时就出错了,怎么也Create不起来,我怀疑是第4个参数(pParentWnd),我取得了这个dialog的pointer,传进去还是出错。错误是Debug Assertion Failed,file:occcont.cpp,58行。
pBrowser->Navigate...
方法2:
CoInitialize(NULL);
CComPtr<IWebBrowser2> m_spOleObjectPreloadBrowser;
HRESULT hr = CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC,
IID_IWebBrowser2, (void **)&m_spOleObjectPreloadBrowser);
if (FAILED(hr)){
TRACE(_T("Can not create WebBrowser\r\n"));
return FALSE;
}
CComQIPtr<IWebBrowser2,&IID_IWebBrowser2> pWebBrowser(m_spOleObjectPreloadBrowser);
if(pWebBrowser){
CComBSTR bstrURL = _T("www.sina.com.cn");
COleSafeArray vPostData;
pWebBrowser->Navigate(bstrURL,
COleVariant((long) 0, VT_I4),
COleVariant(_T(""), VT_BSTR),
vPostData,
COleVariant(_T(""), VT_BSTR));
}
这样一直到navigate都不出错。。。可是显示不出东西啊。。。网络也显示没有任何下载,关键就是如何让WebBrowser对象和界面关联起来,显示出来!!!!