NewWindow3具体怎么做啊

captainchain 2008-05-31 07:32:52
主要想得到新窗口弹出时,它的URL
网上搜了一圈,就只知道加个这个函数,但我加上去,就是没走到这儿来(在VISTA32的IE7里面跑的)
我把它放到CHtmlView的声明里面去了,如下
class CHtmlView:
{
void WINAPI OnNewWindow3(LPDISPATCH* ppDisp,
VARIANT_BOOL* Cancel,
DWORD dwFlags,
BSTR bstrUrlContext,
BSTR bstrUrl)
{
CString str(bstrUrl);
if(m_pOutput)
m_pOutput->AddLine(str.GetBuffer(), RGB(0,0,255), true);
}
}
我想肯定是要把这个事件绑定一下啥的,但不知道具体怎么做
...全文
263 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
captainchain 2008-06-02
  • 打赏
  • 举报
回复
其实我是用的网上的一个从CHtmlView派生的CHtmlCtrl类,怕麻烦,就直接说CHtmlView了~~~
谢谢楼上两位了:)
蒋晟 2008-06-01
  • 打赏
  • 举报
回复
http://blog.joycode.com/jiangsheng/archive/2007/07/03/104995.aspx
jameshooo 2008-05-31
  • 打赏
  • 举报
回复
我这儿没有vs2008,只有2005,里面的CHtmlView没有提供OnNewWindow3虚函数(不知道2008提供没有)。如果没有提供,按照下面的步骤来挂接这个事件:
1、实现一个IDispatch接口(仅仅关注Invoke方法),在Invoke方法里面处理dispidMember==DISPID_NEWWINDOW3的情形,从dispparams参数里能获得URL地址;
2、在view创建好之后挂接这个接口作为事件接收者(去看看连接点的概念以及如何挂接事件通知)
jameshooo 2008-05-31
  • 打赏
  • 举报
回复
你在修改CHtmlView类?这是MFC提供的类,能修改的吗?你应该从CHtmlView继承一个类。
captainchain 2008-05-31
  • 打赏
  • 举报
回复
难道我发错地方了?不会吧。。。怎么半天没人呢?

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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