最近写的东西中常常需要嵌入一些浏览器,微软提供了一个比较好的接口,可以在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比较的方便,这里我就简单记录下这个插件的使用

这里我用vc6为例吧,我的机器太烂,跑不动vs这种巨人级别的软件。

1.首先创建一个对话框,在对话框上右击插入ActiveX的插件

2.可以看到微软提供了很多ActiveX的插件供我们选择。

3.选中浏览器插件确定后就能看到一个浏览器的ActiveX的插件了,下面我们为他关联一个变量m_test如下图

4.关联好后在确定按钮处填写一个消息响应。

m_test.Navigate("www.baidu.com",NULL,NULL,NULL,NULL);

用这个变量的一个成员函数打开这个网址

关于WebBrowser几个问题

1.关于如何取得这个网页的内容

HRESULT hr;
IDispatch* lpDispatch;
lpDispatch = m_WebBrower.GetDocument();
IHTMLDocument2* lpDocument2;
hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2);
if ( hr == S_OK )
{ IHTMLElement * pBody;
lpDocument2->get_body(&pBody);
BSTR html;//存放html源代码
CComBSTR html_t;//用于将BSTR转换为cout可以处理的字符串
pBody->get_innerHTML(&html);
CString strCookie(html);
CFile myfile("1.html",CFile::modeWrite|CFile::modeCreate);
myfile.Write(strCookie,strCookie.GetLength());
myfile.Close();
pBody->Release();
lpDocument2->Release();
}
lpDispatch->Release();

  

 2.有关于如何取得这个网页的cookie

    HRESULT hr;
IDispatch* lpDispatch;
lpDispatch = m_WebBrower.GetDocument();
IHTMLDocument2* lpDocument2;
hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2);
if ( hr == S_OK )
{ hr = lpDocument2->get_cookie(&bstrCookie);
if ( hr == S_OK )
{
CString strCookie(bstrCookie);
CFile myfile("1.txt",CFile::modeWrite|CFile::modeCreate);
myfile.Write(strCookie,strCookie.GetLength());
myfile.Close();
//::MessageBox(NULL, strCookie,"当前Cookie", MB_ICONINFORMATION); }
lpDocument2->put_cookie(NULL);
pBody->Release();
lpDocument2->Release();
}
lpDispatch->Release();

 3.关于一些消息映射

往往我们要等待网页加载完成才能进行一些操作,微软为我们提供了丰富的消息映射,在ClassWizard中可以看到

程序员的基础教程:菜鸟程序员

有关于mfc webbrowser插件的使用的更多相关文章

  1. mfc WebBrowser打开本地网页

    本地路径要用file协议,例子:file:///c:/abc/def.html注意点:file:后面是3个正斜杠,路径中用正斜杠(不是标准的反斜杠).如果你觉得IE地址栏支持标准的路径写法,那么你就错 ...

  2. MFC webbrowser读取文档的meta分析

    IDispatch* pDisp = NULL; IDispatch* pDisp2 = NULL; IHTMLDocument2 *pHtmlDoc2 = NULL; IHTMLElementCol ...

  3. 老司机学新平台 - Xamarin Forms开发框架之MvvmCross插件精选

    在前两篇老司机学Xamarin系列中,简单介绍了Xamarin开发环境的搭建以及Prism和MvvmCross这两个开发框架.不同的框架,往往不仅仅使用不同的架构风格,同时社区活跃度不同,各种功能模块 ...

  4. 引擎设计跟踪(九.14.2j) TableView工具填坑以及多国语言

    Blade的UI都是预定义的接口, 然后由插件来负责实现, 目前只有MFC的插件. 最近加上了TableView的视图, 用于一些文件的查看和编辑, 比如前面在文件包的笔记中提到需写一个package ...

  5. 百度地图API开发

    1.首先申请百度地图秘钥 http://lbsyun.baidu.com/ 2.需要填一个申请的界面 3.申请后会有类似的东西 4.之后参照以下网址进行MFC编译 mfc webbrowser控件使用 ...

  6. ifix中嵌入3d模型初探(一)

    在ifix项目中插入3d模型,是当前工控上位机的一个发展趋势,故而我也来尝尝鲜.利用现有条件,初步打算完成一个工厂俯视3d全景. 基本思路:利用webbrowser+3dmax+three.js来嵌入 ...

  7. MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

    MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/detail ...

  8. C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)控制 WebBrowser 控件的外观和行为

    在 CSDN 上经常看到以下两个问题:1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的三维边框禁止掉?2.在 MFC 应用程 ...

  9. 基于MFC的ActiveX控件开发教程------------浏览器插件之ActiveX开发

    浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...

随机推荐

  1. 使用minGW/cygwin在Windows是用于gcc开发

    刚才记录了下用eclipse在linux下开发,突然想起来也另一种方法:MinGW. MinGW是Windows的gcc开发工具,直接使用Windows的运行库,所以可以在windows下面方便的用g ...

  2. R语言中的遗传算法详细解析

    前言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规规律,每一次知识的传递都是一次进化的过程,最终会形成了人类的智慧.自然界规律,让人类适者生存地活了下来,聪明的科学 ...

  3. CSS个人笔记

    1. CSS盒模型 1.1 控制元素尺寸属性 1.1.1 box-sizing: 改变元素应用的尺寸规则 当设置元素尺寸宽度为固定值时(eg: 100px), 其实是元素内容区域的宽度为100px, ...

  4. 内置锁(二)synchronized下的等待通知机制

    一.等待/通知机制的简介 线程之间的协作:   为了完成某个任务,线程之间需要进行协作,采取的方式:中断.互斥,以及互斥上面的线程的挂起.唤醒:如:生成者--消费者模式.或者某个动作完成,可以唤醒下一 ...

  5. springTask任务调度

    1什么是任务调度 在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作.常见的任务调度框架有Quartz和Sprin ...

  6. mysql 定时执行

      mysqltablevariables任务sqlinsert 重新定义mysql命令行结束符为//,命令行创建存储过程需要.  delimiter //  MySQL5.1.x版本中引入了一项新特 ...

  7. saltstack安装配置及常用命令

    1.salt安装及配置详解 https://www.cnblogs.com/lgeng/p/6567424.html centos7配置: https://www.jianshu.com/p/4c91 ...

  8. 数据库中查询json 样式的值的sql语句

    参考:http://www.lnmp.cn/mysql-57-new-features-json.html 方式一: 可以查到json中的Key:value SELECT * FROM EDI.edi ...

  9. Yii-CHtmlPurifier- 净化器的使用(yii过滤不良代码)

    1. 在控制器中使用: public function actionCreate() { $model=new News; $purifier = new CHtmlPurifier(); $puri ...

  10. JS、CSS以及img对DOMContentLoaded事件的影响

    最近在做性能有关的数据上报,发现了两个非常有意思的东西:Chrome开发者工具的Timeline分析面板,以及DOMContentLoaded事件.一个是强大的令人发指的性能分析工具,一个是重要的性能 ...