正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
2012-07-16 21:51
591 查看
[cpp]
view plaincopyprint?
// CMy5View message handlers
#include <atlbase.h>
#include <Mshtml.h>
#include <COMDEF.H>
void CMy5View::OnNewWindow2(LPDISPATCH* ppDisp,
BOOL* Cancel)
{
// TODO: Add your specialized code here and/or call the base class
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);
}
找了一天了 整整找了4个半小时啊 终于被我找到解决方法了
就是VC6就可以解决了
view plaincopyprint?
// CMy5View message handlers
#include <atlbase.h>
#include <Mshtml.h>
#include <COMDEF.H>
void CMy5View::OnNewWindow2(LPDISPATCH* ppDisp,
BOOL* Cancel)
{
// TODO: Add your specialized code here and/or call the base class
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);
}
// CMy5View message handlers #include <atlbase.h> #include <Mshtml.h> #include <COMDEF.H> void CMy5View::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel) { // TODO: Add your specialized code here and/or call the base class 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); }
找了一天了 整整找了4个半小时啊 终于被我找到解决方法了
就是VC6就可以解决了
相关文章推荐
- 正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
- 正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
- 正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
- javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
- javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
- 实现一个用于显示当前时间的Google Android 窗口小部件
- JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
- 实现一个用于显示当前时间的Google Android 窗口小部件(AppWidge
- Iframe标签显示目标网页中某区域内容的实现方法
- 在mfc对话框中添加一个显示网页的窗口
- 同一个网页中实现多个JavaScript特效的方法
- 使用frame框架,实现一个网页显示多个界面使用js语言,实现事件响应
- 如何实现在一个网页中弹出多个不同的小窗口
- 如何实现在一个网页中弹出多个不同的小窗口
- JavaScript实现网页弹出式窗口的几种方法
- VC实现A进程窗口嵌入到B进程窗口中显示的方法
- 网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”
- js+数组实现网页上显示时间/星期几的实用方法
- Android ListView同一个item显示2列的实现方法(仿2列商品列表)
- js实现带关闭按钮始终显示在网页最底部工具条的方法