哪位大神给解决一下:我学习在单文档中对话框里浏览网页,浏览单页正常,
但点网页中其他的页面就会出现错误。
请问怎么编辑代码呢?
下面是我的代码:
BOOL CMyHtml::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO:  在此添加额外的初始化
CRect rc;
pStatic=GetDlgItem(IDC_STATIC_DUMMY);
pStatic->GetWindowRect(rc);//得到窗口的位置,是屏幕坐标
//pStatic->CalcWindowRect(rc,0);
ScreenToClient(rc);//转换到客户坐标
m_HtmlPage.Create(NULL,NULL,WS_CHILD|WS_VISIBLE,rc,this,IDC_STATIC_DUMMY);
m_HtmlPage.Navigate2(_T("http://www.baidu.com"),NULL,NULL);
   
return TRUE;  // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

解决方案 »

  1.   

    在对话框中只能浏览一个页面,想浏览新页面就要跳转,
    我需要增加一个跳转到新页面的代码。
    但不知道在哪里可以截获这个URL,又在哪里增加这个代码。
    请教哪位大神这个该怎么写。
      

  2.   

    可以连接DWebbrowserEvent2事件,处理BeforeNavigate2 ,NewWindow3等方法
      

  3.   

    利用DIID_DWebBrowserEvents2接口接收WebBrowser事件 
    http://blog.csdn.net/jinhill/article/details/4401080
      

  4.   

    CHtmlView中用OnNewWindow2方法打开的地址过滤
    http://topic.csdn.net/u/20090616/11/d9205beb-5019-461a-8216-042191834280.html
      

  5.   

    非常感谢大家的提点。我用的是OnNewWindow3方法:
    void HtmlCtrl::NewWindow3(IDispatch **ppDisp,VARIANT_BOOL *Cancel,DWORD dwFlags,BSTR bstrUrlContext,BSTR bstrUrl)
    {
    *Cancel = TRUE;
    Navigate2( (LPCTSTR)bstrUrl , NULL , NULL );
    return;
    }
    别的什么都不要,一个函数搞定。