MFC对话框工程,在页面上加载web网页(HTML),用什么控件加载比较好?加载过程中会与网页进行一些交互,比如获取HTML一个属性值、调用js函数等。我现在用的webbrowser2,但是:
1. 判断是否加载完
2. 调用js函数
3. 获取HTML中的一些属性值
等操作比较费劲。
腾讯手机助手、豌豆荚他们是用什么加载网页的?对话框加载网页

解决方案 »

  1.   

    用CHtmlView,已经把webbrowser2封装好了,很方便的,也可用在对话框上。
    网页是否加载完:在CHtmlView::OnDocumentComplete里判断。
    获取HTML属性:CHtmlView::GetHtmlDocument得到IHTMLDocument2等接口指针。借助ATL中的智能指针来管理这些接口指针,用起来也会方便很多。
    调用js函数:CHtmlView::GetHtmlDocument得到IHTMLDocument后调用IHTMLDocument::get_Script()得到一个用来调用JS函数的LPDISPATCH调度接口。
    用ATL的CComDispatchDriver来管理这个LPDISPATCH。然后用CComDispatchDriver的Invoke0(),Invoke1(),Invoke2(),Invoke3()。方便的调用JS函数。如果还想操作更简单的话,建议在C#下使用webbrowser,那里有更多的封装。