MFC对话框工程,在页面上加载web网页(HTML),用什么控件加载比较好?加载过程中会与网页进行一些交互,比如获取HTML一个属性值、调用js函数等。我现在用的webbrowser2,但是:
1. 判断是否加载完
2. 调用js函数
3. 获取HTML中的一些属性值
等操作比较费劲。
腾讯手机助手、豌豆荚他们是用什么加载网页的?对话框加载网页
1. 判断是否加载完
2. 调用js函数
3. 获取HTML中的一些属性值
等操作比较费劲。
腾讯手机助手、豌豆荚他们是用什么加载网页的?对话框加载网页
解决方案 »
- ICO格式图片的缩略图显示问题
- 一个dll中销毁另一个dll中的窗口,DestroyWindow出错,求助(m_thread.GetData()!!!)
- api的钩子问题。
- 关于网络文件属性的问题
- 为什么CLASSVIEW 里面的内容打不开
- 用struct和typedef struct 定义一个结构体有什么区别?为什么会有两种方式呢?
- 高分求代码--有关Http
- mfc com 中返回一个类批针接口应当定义什么类型?在线
- InstallShield Profession6.22, 如何调用外部执行程序,有无象VC的CreateProcess()API ?
- 如何确定进程在自身4GB空间中的范围(所占字节数)以及起始,结束位置
- idl文件当中定义的helpstring等属性,如何在客户端显示出来?
- mfc为什么动态创建的按钮坐标不变,位置却变了,该怎么处理呢
网页是否加载完:在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,那里有更多的封装。