MFC控件Microsoft Web Browser简单浏览器实现

环境:VS2013

新建工程:基于对话框

①在对话框添加控件Microsoft Web Browser(说明:VS2013上控件的名字是Microsoft Web Browser,其它的编译器额就不知道了)

②头函数:

#include <afxinet.h>       //for WinInet 

②对所添加的控件设置环境变量(在此我把环境变量设置为m_sa)

③在OnInitDialog()里设定你想要打开的网页

m_sa.Navigate("http://www.baidu.com", NULL, NULL, NULL, NULL);

做到这时一个网页就可以显示出来了,但是你会发现有很多的毛病,待我们一一解决

④问题一:打开网页也打开了,但是再点击其中的一条新闻时,就会制动调回IE浏览器。

解决:这时我们需要再添加一个消息函数(NewWindow3),制止它跳转为IE。

(打开类向导,在命令下的 对象ID(B):中找到你所添加控件的ID号,再找右面的消息(S):中找到NewWindow3消息函数)

void CMFCApplication1Dlg::OnNewwindow3Explorer1(LPDISPATCH* ppDisp, BOOL* Cancel, unsigned long dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl)
{
	// TODO:  在此处添加消息处理程序代码
	/*
	//  只在一个对话框中操作网页
	*Cancel = TRUE;
	CString strUrl;
	strUrl = bstrUrl;
	VARIANT vInfo;
	VariantInit(&vInfo);
	this->m_sa.Navigate(strUrl, &vInfo, &vInfo, &vInfo, &vInfo);
    this->ShowWindow(SW_SHOW);
	*/

	//***************************************两种方法要求***********************************************

	//  在多个对话框中进行网页操作
	*Cancel = TRUE;
	CString strUrl;
	strUrl = bstrUrl;
	// 新建对话框
	CMFCApplication1Dlg *pNewDlg = new CMFCApplication1Dlg;
	pNewDlg->Create(IDD_MFCAPPLICATION1_DIALOG, this);
	pNewDlg->ShowWindow(SW_SHOW);
	// 网页导航,新的对话框中的webbrowser控件!
	VARIANT vInfo;
	VariantInit(&vInfo);
	pNewDlg->m_sa.Navigate(strUrl, &vInfo, &vInfo, &vInfo, &vInfo);
}

⑤最后再解决个小问题:打开网页时会有下图警示

解决办法:找到控件的属性,把Silent的值改成True就行了

后记:本人才疏学浅,欢迎提出BUG

时间: 2024-10-28 16:04:51

MFC控件Microsoft Web Browser简单浏览器实现的相关文章

关于PB调用Microsoft Web Browser控件的一些问题

Microsoft Web Browser控件是WINDOWS系统自带的控件,一般不需要单独安装,由于工作的需要,把使用中遇到的问题记录一下,以便查阅. 插入控件: 环境为PB12.0,insert-Control-ole 找到Microsoft Web 控件,插入到需要的容器中: 使用控件: ole_web.object.navigate(sle_1.Text)   //sle_1.Text 是有效的URL地址,这就是最简单的使用方法. 使用过程中发现的问题 1.当URL地址无效的时候,获取链

[MFC] 梳理一个简单的图片处理桌面软件中用到的MFC控件技巧

 前言 前些天应好友之拖,帮忙设计一个简单的图像处理的小软件.朋友把核心算法封装好了,但是是用openCV类似于console的编程环境,要我在此基础上改成MFC桌面程序.下图是做成之后的效果: 我是两年前稍微学了点MFC的知识,这两年中基本没有涉及,因为诸多相同的需求都可以用C#来搞定.这个本来也是想用C#来弄,可是我朋友用了openCV的相关函数封装了核心的“美颜算法”,我就只好重温经典了! 本文只涉及开发该小软件中与MFC控件相关的操作技巧,不提供朋友的“美颜算法”,还请各位见谅! 工程中

Html控件和web控件概念及区别和优点

Control(控件)概念:Web服务器控件和HTml控件都是Control控件,这是Web页面能够容纳的对象之一.它是一个可重用的组件或者对象,这个组件不但有自己的外观,还有自己的数据和方法,大部分组件还可以响应事件. Web服务器控件概念:web控件是在服务器端运行的:通俗点说就是web控件是在服务器端处理后生成静态代码发送给客户端浏览器, 书写格式简单,而且不用特别加runat语句,它的实质仍是html控件只不过是用别的方法重新封装了而已. Html服务器控件概念:html 控件是普通控件

基于MVC+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍使用EasyUI的树控件构建Web界面的相关经验. 在很多界面设计上,我们可能都需要引入树列表控件,这个控件可以用zTree来实现,也

基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍使用EasyUI的树控件构建Web界面的相关经验. 在很多界面设计上,我们可能都需要引入树列表控件,这个控件可以用zTree来实现,也

(转)基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍使用EasyUI的树控件构建Web界面

基类包括字段“ScriptManager1”,但其类型(System.Web.UI.ScriptManager)与控件(System.Web.UI.ScriptManager)的类型不兼容

首先说下原先的情况,就是原本老项目的Web解决方案是使用.net framework 2.0的老版本, 所以机器也安装过Microsoft ASP.NET 2.0 AJAX Extensions..AJAX插件.. 但是因为后面种种原因反正就是要升级到.net framework 3.5的版本. 因此导致出现 (基类包括字段“ScriptManager1”,但其类型(System.Web.UI.ScriptManager)与控件(System.Web.UI.ScriptManager)的类型不兼

关于MFC控件删除出现“具有该ID的控件已存在”这样的情况的解决方案,详细,网上都没有这么详细的,我是“深受其害”,所以想将详细的方法分享出去。

网上关于MFC控件删除出现“具有该ID的控件已存在”这样的情况,在网上找了很多关于这方面的东西,但是都不是很全,也不容易弄明白.现在问我直接通过一个项目和图片的形式和大家一块分享一个这个解决方法(如有不对,请相互学习,qq1035169610): 1.创建一个MFC的项目,这里仅限于演示,就把项目名字称为“lu”吧. 2.下面就是将button控件添加到图形界面框中.结果如下: 3.只要将控件拉入到图形界面中,在Resource.h这个文件中创建宏,如下图所示: 4.那么开始改控件的名字和ID.

MFC控件编程:旋转按钮、进度条和滑块控件

旋转按钮(微调按钮) : 对应的控件类是CSpinButtonCtrl 进度条:对应的控件类是CProgressCtrl 滑块:对应的控件类是CSliderCtrl 对这三个控件的操作都是同过与之相关联的控件类完成的,并且这三个控件有极大的相似性,故这里放到一起 先认识下: Spin:            Progress:             Slider: 常用函数: SetRange()/GetRange(); // 设置.获取控件表示的范围 /* 设置控件的增量(步长) */ CS