htmlview onnewwindow不响应的问题?

SuperMstsc 2012-01-24 09:42:23
大概情况是,我需要在程序里打开一个网站并进行处理,这里就有一个问题是,网站中所有新窗口打开的页面都要在我这个单文档程序中显示。
使用onNewwindow2配合一个隐藏的视图是可以满足需求的,但是有一个页面就比较奇怪,点击窗口按钮后直接在IE中打开新窗口了。完全不响应OnNewWindow2,后面我又试了OnNewWindow3,也不响应。

网站程序我拿不到源代码,从HTML代码里又看不到他打开页面的代码(今天我找了一天都没找到。茫茫多的JS文件)

不知道他用的什么方式打开的新窗口,开始怀疑过是用的ShowModalDialog,但是应该不是,他不是打开的模式窗口而是一个完全的新窗口。有没有哪位朋友有这方面的经验,或者有没有其它什么好的方法能解决这个问题。
...全文
68 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishion 2012-01-30
  • 打赏
  • 举报
回复
如果是钩子的话,可以用WH_CBT当HCBT_CREATEWND的情况,或者就是处理IHTMLDocument2的onclick事件看看
fishion 2012-01-29
  • 打赏
  • 举报
回复
给个链接来看看
SuperMstsc 2012-01-29
  • 打赏
  • 举报
回复
没链接,那是内部网站,外网不能访问。现在在考虑是不是用HOOK或者BHO的方式来,最近没时间试,希望能有更好的办法
SuperMstsc 2012-01-24
  • 打赏
  • 举报
回复
不是,你上面的代码也是利用OnNewWindow2来实现的,我现的问题是页面在打开新窗口的时候没有调用OnNewWindow2和OnNewWindow3,貌似这两个函数不能捕获所有的新建窗口的行为,哪位高手知道怎么能捕获所有打开新窗口的行为?
zgszft 2012-01-24
  • 打赏
  • 举报
回复
神马意思?
是这个吗?
CWinApp* pApp = AfxGetApp();

CDocTemplate* pDocTemplate;
POSITION pos = pApp->GetFirstDocTemplatePosition();
pDocTemplate = pApp->GetNextDocTemplate(pos);
ASSERT(pDocTemplate);
CFrameWnd* pNewFrame = pDocTemplate->CreateNewFrame(GetDocument(),(CFrameWnd*)GetParentFrame());
ASSERT(pNewFrame);
// Activate the frame and set its active view
pDocTemplate->InitialUpdateFrame(pNewFrame, NULL);
CYourView* pWBVw = (CYourView*)pNewFrame->GetActiveView();
ASSERT(pWBVw);
pWBVw->SetRegisterAsBrowser(TRUE);
*ppDisp = pWBVw->GetApplication();

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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