VC:WebBrowser控件始终在本窗口打开新页面

基于view的处理方法=========

m_pBrowserApp->put_RegisterAsBrowser(VARIANT_TRUE);



void CMyHtmlView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)
{
CComPtr<IHTMLDocument2> pHTMLDocument2;

m_pBrowserApp->get_Document((IDispatch **)&pHTMLDocument2);
if (pHTMLDocument2!=NULL)
{
CComPtr<IHTMLElement> pIHTMLElement;
pHTMLDocument2->get_activeElement(&pIHTMLElement);

if (pIHTMLElement!=NULL)
{
variant_t url;
HRESULT hr=pIHTMLElement->getAttribute(L"href", 0, &url);
if (SUCCEEDED(hr))
{
hr=m_pBrowserApp->Navigate2(&url, NULL, NULL, NULL, NULL);

url.Clear();

if (SUCCEEDED(hr))
{
*Cancel=TRUE;
}
}
}
}

//CHtmlView::OnNewWindow2(ppDisp, Cancel);
}


==============================基于dialog

如果想要禁止在新窗口打开,则需要添加控件事件处理函数NewWindow3()添加如下函数

[cpp]  view plain copy
  1. void C网页Dlg::NewWindow3Explorer1(LPDISPATCH* ppDisp, BOOL* Cancel, unsigned long dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl)  
  2. {  
  3.     // TODO: 在此处添加消息处理程序代码  
  4.     * Cancel = TRUE;  
  5.     VARIANT vInfo;  
  6.     m_webBrowser.Navigate(<span style="color: rgb(51, 102, 153); font-family: Monaco, Consolas, 'Lucida Console', 'Courier New', serif; line-height: 21.600000381469727px; ">bstrUrl</span>, &vInfo, &vInfo, &vInfo, &vInfo);  
  7. }  
如在新窗口中打开链接和在新标签中打开链接是两个不同的事件(NewWindow2,NewWindow3)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值