高分求助 cwebbrowser2 显示页面太慢的问题

tee4509 2011-07-20 10:30:25
我在wince6下,用webbrowser显示本地的html文件,初次加载很慢,这个我知道,我已经做了处理(程序启动先加载一个界面,然后隐藏webbrowser),可是我在显示html文件切换的时候有时候也特别慢,可能有30s,大部分时候2s不到,不知道是什么原因,有人遇到过类似问题吗?
我用的是Navigate显示不同的本地文件
...全文
182 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
tee4509 2011-07-22
  • 打赏
  • 举报
回复
顶一个,不然沉下去了~
100分都没人要啊
maquan 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tee4509 的回复:]
我自己写了个程序测试了下,发现好像是刷新的问题,如点过按钮以后,如果不移动鼠标就会出现这样的问题,如果稍微移动下鼠标,界面就刷新完整了.但是我的程序鼠标是不能显示的,不知道怎么弄?
[/Quote]
也许这个就是症结呢。

你是什么程序呀,连鼠标都不能显示?WebBrowser 是一个 UI 控件,貌似做过一些针对交互操作的优化,如果你在 UI 上做了手脚,确实有可能对它产生影响。
ndy_w 2011-07-21
  • 打赏
  • 举报
回复
不知道ce...NavigateComplete2了吗?检查下readystate
tee4509 2011-07-21
  • 打赏
  • 举报
回复
嗯,说的有道理,不过我的CE BSP包中只添加了支持,没有添加ie浏览器,暂时还试不了这个~
tee4509 2011-07-21
  • 打赏
  • 举报
回复
刚刚自己试过用refresh但是用这个似乎得等到文档加载完毕,不然就refresh成上次的界面了.于是又做了个等待函数,等待GetBusy()的结果,可我发现无论是加载前后这个函数得到的值始终是0,郁闷啊~高人指点 啊
  • 打赏
  • 举报
回复
这样测试过没:首先不用webbrowser控件,用ie或navigate浏览器直接浏览网页会不会出现这样的问题,如果会就是系统问题,如果不会就是程序问题,设置断点调调看
哈哈王戈多 2011-07-21
  • 打赏
  • 举报
回复
学习中。。。
tee4509 2011-07-21
  • 打赏
  • 举报
回复
我自己写了个程序测试了下,发现好像是刷新的问题,如点过按钮以后,如果不移动鼠标就会出现这样的问题,如果稍微移动下鼠标,界面就刷新完整了.但是我的程序鼠标是不能显示的,不知道怎么弄?
tee4509 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 ndy_w 的回复:]

Refresh不是重画的意思...
BringWindowToTop试一下,看能不能迫使它重画
[/Quote]
试过了也不行.
还有一个方法就是在nagivate一次,手动点击按钮可以.我在定时器中1s在加载一次就能解决这个问题.
但是这样毕竟不好,不知道是什么原因,求达人相助啊~
ndy_w 2011-07-21
  • 打赏
  • 举报
回复
Refresh不是重画的意思...
BringWindowToTop试一下,看能不能迫使它重画
ndy_w 2011-07-21
  • 打赏
  • 举报
回复
Refresh不是重画的意思...
BringWindowToTop试一下,看能不能迫使它重画
ndy_w 2011-07-21
  • 打赏
  • 举报
回复
Refresh不是重画的意思...
BringWindowToTop试一下,看能不能迫使它重画
tee4509 2011-07-21
  • 打赏
  • 举报
回复
我已经把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();
}
}
tee4509 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 cxj6543546 的回复:]

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

代码是挺好,不过不是我想要的,win32下我也做了个例子,一点问题都没有的....还有我要加载的是本地文档
cxj6543546 2011-07-21
  • 打赏
  • 举报
回复
http://download.csdn.net/source/3367220
这是我做的webbrowser,加载速度很快,代码也很清晰,对你这个问题有帮助!!
tee4509 2011-07-21
  • 打赏
  • 举报
回复
我的是基于对话框的,还有我用的是Cwebbrowser2 没有发现这个函数OnDocumentComplete
oyljerry 2011-07-21
  • 打赏
  • 举报
回复
在OnDocumentComplete()..中Refresh
tee4509 2011-07-21
  • 打赏
  • 举报
回复
鼠标移动是能显示完整是因为鼠标在webbrowser里面移动,使其发生了重绘事件,如果在外面移动鼠标,也还是不行的
tee4509 2011-07-21
  • 打赏
  • 举报
回复
没有啊.我把鼠标显示出来也那样的,必须要动动鼠标才能显示,或者在执行一次Navigate才能完整显示

3,055

社区成员

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

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