vc++,使用IWebBrowser2组件打开网页时,怎么得知网页打开是不是完毕?怎么主动停止打开网页?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc++,使用IWebBrowser2组件打开网页时,怎么得知网页打开是不是完毕?怎么主动停止打开网页?相关的知识,希望对你有一定的参考价值。

如题
IWebBrowser2::Stop())我看明白了
IWebBrowser2::get_ReadyState是什么意思啊?看不懂啊!

1)READYSTATE r;
HRESULT hr = IWebBrowser2::get_ReadyState(&r);
if (SUCCEEDED(hr) && r == READYSTATE_COMPLETE)
...


2)if (SUCCEEDED(IWebBrowser2::Stop())
...


-------------------------
Navigate2后,可以查询组建状态,查询所使用的方法就是get_ReadyState。
如果READYSTATE等于READYSTATE_COMPLETE,就说明Navigate2所请求的数据已经DOWNLOAD完成了。

另外,还有个可以实时监控网页是否打开完毕的方法,准确说是IWebBrowser2的触发事件,原型:

BEGIN_EVENTSINK_MAP(MainDlg, CDialog)
ON_EVENT(MainDlg, IDC_EXPLORER1, 259, MainDlg::DocumentCompleteExplorer1, VTS_DISPATCH VTS_PVARIANT)
END_EVENTSINK_MAP()

void MainDlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)

//捕捉到网页完全下载/打开成功事件


由于我觉得楼主似乎对COM不太熟悉,因此该方法的实现原理也就不多说了。以上原型是针对ActiveX控件的,通过向导会自动添加该方法的映射,因此先建一个对话框,然后利用向导自动生成的该映射代码添加至含有对应IWebBrowser2的包装类所在的类代码中,如CXXXView,CXXXDoc类中。
参考技术A 看MSDN文档吧~
http://msdn.microsoft.com/zh-cn/library/aa752127(en-us,VS.85).aspx

以上是关于vc++,使用IWebBrowser2组件打开网页时,怎么得知网页打开是不是完毕?怎么主动停止打开网页?的主要内容,如果未能解决你的问题,请参考以下文章

如何用VC编写一个程序,运行打开指定网页

vc++2010学习版在安装时提示“未能安装以下组件:Microsoft 应用程序错误报告”怎么解决?

如何在没有 UI 的情况下创建 WebBrowser 控件 (ActiveX / IWebBrowser2)?

UnsafeNativeMethods.IWebBrowser2.Navigate2 中的 HRESULT E_FAIL

IWebBrowser2 OnBeforeNavigate 事件 - EventHandler

请教高人如果使用IWebBrowser2控件,同时可缓存Cookie-CSDN论坛