我在wince6下,用webbrowser显示本地的html文件,初次加载很慢,这个我知道,我已经做了处理(程序启动先加载一个界面,然后隐藏webbrowser),可是我在显示html文件切换的时候有时候也特别慢,可能有30s,大部分时候2s不到,不知道是什么原因,有人遇到过类似问题吗?
我用的是Navigate显示不同的本地文件

解决方案 »

  1.   

    这样测试过没:首先不用webbrowser控件,用ie或navigate浏览器直接浏览网页会不会出现这样的问题,如果会就是系统问题,如果不会就是程序问题,设置断点调调看
      

  2.   

    刚刚自己试过用refresh但是用这个似乎得等到文档加载完毕,不然就refresh成上次的界面了.于是又做了个等待函数,等待GetBusy()的结果,可我发现无论是加载前后这个函数得到的值始终是0,郁闷啊~高人指点 啊
      

  3.   

    嗯,说的有道理,不过我的CE BSP包中只添加了支持,没有添加ie浏览器,暂时还试不了这个~
      

  4.   

    不知道ce...NavigateComplete2了吗?检查下readystate
      

  5.   

    也许这个就是症结呢。你是什么程序呀,连鼠标都不能显示?WebBrowser 是一个 UI 控件,貌似做过一些针对交互操作的优化,如果你在 UI 上做了手脚,确实有可能对它产生影响。
      

  6.   

    没有啊.我把鼠标显示出来也那样的,必须要动动鼠标才能显示,或者在执行一次Navigate才能完整显示
      

  7.   

    鼠标移动是能显示完整是因为鼠标在webbrowser里面移动,使其发生了重绘事件,如果在外面移动鼠标,也还是不行的
      

  8.   

     在OnDocumentComplete()..中Refresh
      

  9.   

    我的是基于对话框的,还有我用的是Cwebbrowser2 没有发现这个函数OnDocumentComplete
      

  10.   

    http://download.csdn.net/source/3367220
    这是我做的webbrowser,加载速度很快,代码也很清晰,对你这个问题有帮助!!
      

  11.   


    代码是挺好,不过不是我想要的,win32下我也做了个例子,一点问题都没有的....还有我要加载的是本地文档
      

  12.   

    我已经把DownloadCompleteExplorer2弄出来了,可是在这里刷新后页面始终不变了,跟在nagivate后面加这个语句效果一样 
    我把我的代码贴出来 大家看看BOOL Ctestwebbrowser2Dlg::OnInitDialog()
    {
    CDialog::OnInitDialog();
    m_iNeedFresh = 0;
    // Set the icon for this dialog.  The framework does this automatically
    SetIcon(m_hIcon, TRUE); // Set big icon
    SetIcon(m_hIcon, FALSE); // Set small icon
    m_iMyIE.Create(NULL,WS_CHILD|WS_VISIBLE,CRect(0,0,800,400),this,IDC_EXPLORER2);

    return TRUE;  // return TRUE  unless you set the focus to a control
    }
    void Ctestwebbrowser2Dlg::OnBnClickedButton2()
    {
    // TODO: Add your control notification handler code here
    m_iNeedFresh=1;
    m_iMyIE.Navigate(_T("\\NandFlash\\1.html"),NULL,NULL,NULL,NULL);
    }void Ctestwebbrowser2Dlg::OnBnClickedButton1()
    {
    // TODO: Add your control notification handler code here
    m_iNeedFresh =1;
    m_iMyIE.Navigate(_T("\\NandFlash\\2.html"),NULL,NULL,NULL,NULL);
    }

    void Ctestwebbrowser2Dlg::DownloadCompleteExplorer2()
    {
    // TODO: Add your message handler code 
    if (m_iNeedFresh>0)
    {
    m_iNeedFresh = 0;
    m_iMyIE.Refresh();
    }
    }
      

  13.   

    Refresh不是重画的意思...
    BringWindowToTop试一下,看能不能迫使它重画
      

  14.   

    Refresh不是重画的意思...
    BringWindowToTop试一下,看能不能迫使它重画
      

  15.   

    Refresh不是重画的意思...
    BringWindowToTop试一下,看能不能迫使它重画
      

  16.   

    试过了也不行.
    还有一个方法就是在nagivate一次,手动点击按钮可以.我在定时器中1s在加载一次就能解决这个问题.
    但是这样毕竟不好,不知道是什么原因,求达人相助啊~