VC++对话框程序中
先定义IWebBrowser对象
CWebBrowser2 m_IECtrl
在void CHTMLDlg::OnInitDialog()中初始化
m_IECtrl.Navigate(_T("http://www.baidu.com/"), NULL, NULL, NULL, NULL);//连接到百度主页
现添加一按钮连接新的连接
void CHTMLDlg::OnButtonLinkurl()
{
m_IECtrl.Navigate(_T("http://www.yahoo.cn/"), NULL, NULL, NULL, NULL);//连接到雅虎主页
MessageBox(m_IECtrl.GetLocationURL());
//后面的内容是对雅虎主页进行操作,但得到的数据一致是百度主页的数据
CComPtr<IHTMLElementCollection> spElemColl;
LPDISPATCH pDocDispatch = m_IECtrl.GetDocument();
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spDoc;
spDoc = pDocDispatch;
spDoc->get_all(&spElemColl);
}
问题来了:
对话框中的IE控件界面已连接到雅虎的主页,而MessageBox(m_IECtrl.GetLocationURL())里面显示的是"http://www.baidu.com/",包括后面得到的数据都是百度主页的数据,请高手指导怎么得到雅虎主页的数据?
先定义IWebBrowser对象
CWebBrowser2 m_IECtrl
在void CHTMLDlg::OnInitDialog()中初始化
m_IECtrl.Navigate(_T("http://www.baidu.com/"), NULL, NULL, NULL, NULL);//连接到百度主页
现添加一按钮连接新的连接
void CHTMLDlg::OnButtonLinkurl()
{
m_IECtrl.Navigate(_T("http://www.yahoo.cn/"), NULL, NULL, NULL, NULL);//连接到雅虎主页
MessageBox(m_IECtrl.GetLocationURL());
//后面的内容是对雅虎主页进行操作,但得到的数据一致是百度主页的数据
CComPtr<IHTMLElementCollection> spElemColl;
LPDISPATCH pDocDispatch = m_IECtrl.GetDocument();
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> spDoc;
spDoc = pDocDispatch;
spDoc->get_all(&spElemColl);
}
问题来了:
对话框中的IE控件界面已连接到雅虎的主页,而MessageBox(m_IECtrl.GetLocationURL())里面显示的是"http://www.baidu.com/",包括后面得到的数据都是百度主页的数据,请高手指导怎么得到雅虎主页的数据?
OnDocumentComplete
任意浏览器的在新窗口打开还是自己的WebBrowser打开连接是在新窗口打开
第一种情况比较麻烦
第二种情况可以处理OnBeforeNavigate2中将连接重定向到你自己的WebBrowser
你可以参考一下
处理的是OnNewWindow2
先前记错了
不好意思
void CGPHtmlCtrl::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)
{
CGPHtmlPopDlg* pFrame = new CGPHtmlPopDlg;
pFrame->Create(IDD_HTMLPOP, GetParent());
pFrame->_htmlContent.SetRegisterAsBrowser( TRUE );
*ppDisp = pFrame->_htmlContent.GetApplication();
pFrame->CenterWindow();
pFrame->ShowWindow(SW_SHOW);
}