求助:类似于IE7那样的形式浏览器实现

thinkboy234 2010-05-01 10:24:17
我的问题是:如何在一个多文档中捕捉打开的新网页。而不是点了某个链接后跳出的新网页是用IE打开的。要怎样才能实现捕捉到网页内容然后在自己的多文档程序中显示呢。类似于网上公开的 MYIE 这个浏览器程序。
...全文
183 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
j1223jesus 2010-11-11
  • 打赏
  • 举报
回复
*cancel = true ; 这样就不弹出新窗口了
向立天 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sanguomi 的回复:]
可能楼上都没了解他的意思,
楼主要的是程序外打开的网页链接,用自己的程序打开,对吧
这个改注册表设置就可以
[/Quote]

类似的东西我做过
通过CHtmlView自己做了一个HtmlCtrl
通过与1楼类似的方法实现通过自己的窗口显示新弹出的链接
不过类似的控件应该很多
所以我问的细一些
sanguomi 2010-05-03
  • 打赏
  • 举报
回复
可能楼上都没了解他的意思,
楼主要的是程序外打开的网页链接,用自己的程序打开,对吧
这个改注册表设置就可以
向立天 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 a32132100 的回复:]
可以实现。 通过获取输入地址然后打开链接。
[/Quote]

你是通过CHtmlView做的?
thinkboy234 2010-05-03
  • 打赏
  • 举报
回复
谢谢各位给的思路。问题已经解决了。我是这样做的:

在VIEW类中加了这么个函数。
void CMIEView::OnNewWindow2(LPDISPATCH FAR* ppDisp,BOOL FAR* Cancel)
{
ASSERT(ppDisp);
if (!ppDisp)
return;
CWinApp* pApp = AfxGetApp();
CDocTemplate* pDocTemplate;
POSITION pos = pApp->GetFirstDocTemplatePosition();
pDocTemplate = pApp->GetNextDocTemplate(pos);
ASSERT(pDocTemplate);
CFrameWnd* pNewFrame = pDocTemplate->CreateNewFrame(GetDocument(),(CFrameWnd*)AfxGetMainWnd());
ASSERT(pNewFrame);
pDocTemplate->InitialUpdateFrame(pNewFrame, GetDocument());
CMIEView* pWbView = (CMIEView*)pNewFrame->GetActiveView();
ASSERT(pWbView);
pWbView->SetRegisterAsBrowser(TRUE);
*ppDisp = pWbView->GetApplication();
}

用的跟一楼的函数一样,但是里面写的不一样。百度搜过确实有不少像1楼的答复一样,但是不知道为啥用在我这不行,很是郁闷。问题解决了还是要谢谢各位的帮助。
thinkboy234 2010-05-02
  • 打赏
  • 举报
回复
继续等待高人来详细解答。
我刚把7楼的代码复制到MainFrame类中 再打开一个链接后还是用IE打开的。放到VIEW类里也是如此。也就是说在新打开一个WEB窗口时 onnewwindow2 函数没有被执行。我该怎么修改呢?
尹成 2010-05-02
  • 打赏
  • 举报
回复
ChtmlView类有一个OnNewWindow2的Event,弹出IE时会执行到此函数你可以尝试下此函数
thinkboy234 2010-05-02
  • 打赏
  • 举报
回复
继续期待 高手来帮助
thinkboy234 2010-05-02
  • 打赏
  • 举报
回复
不行哦。。还是不知道怎么用一楼给的函数。我是新手。可以再详细些么。不知道如何用。谢谢了。
thinkboy234 2010-05-02
  • 打赏
  • 举报
回复
可以实现。 通过获取输入地址然后打开链接。
iqyely 2010-05-02
  • 打赏
  • 举报
回复
学习下。
向立天 2010-05-02
  • 打赏
  • 举报
回复
你现在能实现在自己的程序里打开网页么?
用的什么方法?
thinkboy234 2010-05-02
  • 打赏
  • 举报
回复
这个就是只做个事件的映射就可以了么?不过这个函数的解释说会阻止弹出窗口。可是我要是要截获窗口到自己的多文档程序中显示出来。该怎么写呢。
thinkboy234 2010-05-02
  • 打赏
  • 举报
回复
我的基础确实需要再好好的看一看。 不过现在有点紧急后天要弄出来。所以还是劳烦高手来详细讲一下。麻烦各位了。
zhouzhipen 2010-05-02
  • 打赏
  • 举报
回复
void CXXXHtmlView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)
{
// TODO: Add your specialized code here and/or call the base class
*Cancel = FALSE;//更正处
CHtmlView::OnNewWindow2(ppDisp, Cancel);
}


更正1楼的回复.
为什么LZ连这个都没有看出来?还是好好补习一下基础吧
thinkboy234 2010-05-02
  • 打赏
  • 举报
回复
这个函数要怎么用呢?直接把1楼的代码复制过去,在点击一个链接后就执行这个函数么。还是。。。
Eleven 2010-05-01
  • 打赏
  • 举报
回复
重载CXXXHtmlView类的OnNewWindow2()虚函数;
void CXXXHtmlView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel) 
{
// TODO: Add your specialized code here and/or call the base class
Cancel = FALSE;
CHtmlView::OnNewWindow2(ppDisp, Cancel);
}

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧