我想用类CHtmlView做了一个简单的浏览器来打开网页,可是在里面点键接时,对于不用新窗子打开网页的还好,会在本窗口显示,而对于用新窗口打开网页时,却会自动调用IE来打开,怎样让它不调用IE,而是仍然在我的浏览器中打开新网页呀???

解决方案 »

  1.   

    http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=1761
      

  2.   

    单文档??单文档开新窗口之后,原来的窗口怎么办?
    这是对话框的处理……你看看是不是要显示一堆对话框……
    void CYourDlg::OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel)
       {
          m_dlgNewWB = new CYourDlg;
          m_dlgNewWB->Create(IDD_WBDLG_DIALOG);      m_dlgNewWB->m_webBrowser.SetRegisterAsBrowser(TRUE);      *ppDisp = m_dlgNewWB->m_webBrowser.GetApplication();
       }
      

  3.   

    我是在一个cformview上建了一个CHtmlView,单文档的,在这个FORM上还有其它控件,只有一个CHtmlView,我要在这里打开网页后,每次在里面点链接,不管是不是新窗口链接,都仍然在原来的CHtmlView中打了我点的链接,怎么办???
      

  4.   

    *ppDisp 设置为当前浏览器的IWebBrowser2
      

  5.   

    MSDN
    Knowledge Base
    Q185538 HOWTO: Cause Navigation to Occur in Same WebBrowser Window 
    Q294870 BUG: Using NewWindow or NewWindow2 to Always Navigate in the Same Window Fails in Some Instances
      

  6.   

    If you have a Microsoft Foundation Classes (MFC) application and use NewWindow to navigate in the same window, the following code fails in Internet Explorer 5.5: 
    void CDWebBrowserEvents::OnNewWindow(BSTR URL, long Flags, BSTR TargetFrameName, 
     VARIANT* PostData, BSTR Headers, BOOL FAR* Processed)
    {
    if (m_Browser) {
        COleVariant varEmpty;
        *Processed = TRUE;
        m_Browser->Navigate((LPCSTR)URL, &varEmpty, &varEmpty, &varEmpty, &varEmpty);
    }
    }
     
    If you use NewWindow2, the following code fails in all versions of the Internet Explorer: 
    void CIEDlg::OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel) 
    { IUnknown* pUnk = m_Browser.GetControlUnknown();
    if (pUnk)
    {
    IDispatch* pDisp = NULL;
    HRESULT hr = pUnk->QueryInterface(IID_IDispatch, (void**)&pDisp); if (SUCCEEDED(hr) && pDisp)
    *ppDisp = pDisp;
    }