MFC嵌入CEF谷歌浏览器项目源码

4 篇文章 0 订阅

 简介:这是一个在VS2010平台开发内嵌浏览器内核MFC客户端。运行就来占用内存和一般浏览器差别不大。 目前CEF最新的版本已经更新到CEF3,本项目所使用的是CEF1。下载源码

  1. 设置依赖的cef库 libcef.lib、libcef_dll_wrapper.lib设置cef依赖库
  2. 代码实现

WebClient.h

/*************************************************
File Name	: WebClient.h
Author		: shaoyiju
Version		: v1.00
DateTime	: 2018-08-03
Description : 继承CEF的客户端类,创建客户端的逻辑在父窗口实现,相关资料请参考:
			  https://blog.csdn.net/farcall/article/details/37406359
			  https://blog.csdn.net/mushao999/article/details/37606189/
*************************************************/

#pragma once

#include "include/cef_app.h"
#include "include/cef_browser.h"
#include "include/cef_client.h"
//#include "include/wrapper/cef_closure_task.h"
//#include "include/wrapper/cef_helpers.h"


class CWebClient
	: public CefClient
	, public CefLifeSpanHandler
{
public:
	CWebClient(){};
	~CWebClient(){};

	CefRefPtr<CefBrowser> GetBrowser() { return m_Browser; }

	virtual CefRefPtr<CefLifeSpanHandler> GetLifeSpanHandler() OVERRIDE
	{
		return this;
	}

	virtual void OnAfterCreated(CefRefPtr<CefBrowser> browser) OVERRIDE
	{
		m_Browser = browser;
	}

	// 添加CEF的SP虚函数
	IMPLEMENT_REFCOUNTING(CWebClient);
	IMPLEMENT_LOCKING(CWebClient);

protected:
	CefRefPtr<CefBrowser> m_Browser;
};

 

在对话框类XXXDlg添加成员变量:

private:
	CefRefPtr<CWebClient>	m_webClient;

在对话框类XXXDlg::OnInitDialog中添加代码:

// 获取命令行参数
CefString strCmd = AfxGetApp()->m_lpCmdLine;
if (strCmd.empty())
{
	strCmd = _T("https://www.baidu.com/");
}

// 创建浏览器客户端
CefRefPtr<CWebClient> client(new CWebClient());
m_webClient = client;

CefSettings cSettings;
CefSettingsTraits::init(&cSettings);
cSettings.multi_threaded_message_loop = true;
CefRefPtr<CefApp> spApp;
CefInitialize(cSettings, spApp);

CRect rc;
GetClientRect(rc);

CefWindowInfo info;
info.SetAsChild(m_hWnd, rc);

CefBrowserSettings browserSettings;
CefBrowser::CreateBrowser(info, static_cast<CefRefPtr<CefClient>>(client), strCmd.c_str(), browserSettings);

// 默认全屏
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0);

在对话框类XXXDlg::OnSize中添加代码:

if(m_webClient.get())
{
    CefRefPtr<CefBrowser> browser = m_webClient->GetBrowser();
    if(browser)
    {
        CefWindowHandle hwnd = browser->GetWindowHandle();
		CRect rc;
		GetClientRect(rc);
        ::MoveWindow(hwnd, rc.left, rc.top, rc.Width(), rc.Height(), true);
    }
}

编译运行,搞定!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: CefSharp是一个开源的.NET实现的Web浏览器控件库,它基于Google Chromium项目,可以方便地在C#应用程序中嵌入谷歌浏览器功能。在CefSharp中,我们可以使用C#代码来操控浏览器的各种功能,比如加载网页、执行JavaScript、获取网页元素等。 在CefSharp中嵌入谷歌浏览器功能可以带来很多好处。首先,谷歌浏览器是一个功能强大且广泛使用的浏览器,它拥有先进的HTML5和CSS3支持,可以让我们的应用程序展示出更丰富、更现代的网页内容。其次,作为谷歌浏览器的一部分,CefSharp也能够利用谷歌浏览器的安全性和稳定性,提供更好的用户体验和更可靠的浏览器功能。此外,CefSharp还提供了各种事件和API,使得我们可以更加灵活和精确地控制浏览器的行为。 关于CSDN,作为中国最大的IT技术社区,有很多开发者在上面分享和交流关于CefSharp和嵌入谷歌浏览器的经验。在CSDN上,我们可以找到很多关于CefSharp的文章、教程和示例代码,为我们学习和使用CefSharp提供了很大的便利。同时,我们也可以在CSDN上提问和讨论关于CefSharp的问题,得到其他开发者的帮助和解答。 总之,CefSharp是一个很好的.NET实现的Web浏览器控件库,通过它我们可以方便地嵌入谷歌浏览器功能到我们的C#应用程序中。而CSDN作为一个知识共享和交流的平台,能够为我们提供关于CefSharp的学习资源和开发者社区,使我们能够更好地学习和掌握CefSharp的应用。 ### 回答2: CefSharp是一个强大的.NET WinForms和WPF浏览器控件,它基于谷歌的开源项目CEF(Chromium Embedded Framework)开发。它允许我们在我们的.NET应用程序中嵌入谷歌浏览器的功能,提供了一个稳定、灵活和高性能的浏览器体验。 通过使用CefSharp,我们可以将谷歌浏览器的各种功能集成到我们的应用程序中,包括网页浏览、HTML渲染、JavaScript执行、Cookie管理等等。这使得我们可以在我们的应用程序中直接访问和操作Web内容,而不需要用户离开应用程序去打开外部浏览器。 在CSND中,通过使用CefSharp,我们可以实现在CSND网站中嵌入谷歌浏览器的功能。我们可以在我们自己的应用程序界面中显示CSND网站的内容,让用户可以直接在应用程序中浏览CSND上的文章、博客、论坛等内容。这样一来,用户不需要额外打开浏览器来访问CSND,可以更加方便地获取和分享CSND上的资源。 此外,CefSharp还提供了丰富的API和事件,使得我们可以对浏览器进行更加灵活的控制和定制。我们可以捕获浏览器中的各种事件,例如页面加载完成、JavaScript执行事件等,以便我们根据实际需求来相应这些事件和控制浏览器的行为。 总之,通过使用CefSharp嵌入谷歌浏览器,我们可以为我们的应用程序提供强大的Web浏览功能,从而提升用户体验和功能性。在CSND中,这意味着我们可以更好地展示和访问CSND上的内容,同时也方便了用户在CSND上的交流和学习。 ### 回答3: CefSharp是一个基于C#的开源项目,用于将谷歌浏览器Chromium嵌入到Windows Forms或WPF应用程序中。使用CefSharp,开发者可以方便地在自己的应用中集成一个功能强大的浏览器,从而实现更丰富的用户体验。 在csdn网站上,可以找到一些关于CefSharp使用的教程和文档。这些文章介绍了如何在C#应用程序中嵌入谷歌浏览器,并演示了一些常用功能的实现方法。通过在csdn上搜索关键词“CefSharp”或“谷歌浏览器嵌入C#”,可以找到许多相关的资源。 在使用CefSharp嵌入谷歌浏览器之前,需要先下载和安装CefSharp库,然后在项目中添加对CefSharp的引用。接下来,可以通过创建CefSharp的控件并将其添加到Windows Forms或WPF界面中,来实现浏览器的显示。开发者可以通过CefSharp提供的API来加载网页、执行JavaScript代码、捕获网页事件等等。 CefSharp不仅可以用于简单的网页浏览,还可以用来开发一些复杂的应用,例如网页编辑器、网页爬虫等。通过使用CefSharp,开发者可以利用谷歌浏览器的强大功能,轻松地在自己的应用中实现各种互联网功能。 总之,CefSharp是一个强大的工具,可以方便地将谷歌浏览器嵌入到C#应用程序中。在csdn上可以找到许多关于CefSharp使用的教程和文档,供开发者学习和参考。使用CefSharp,开发者可以轻松地实现自己想要的浏览器功能,并为用户提供更好的浏览体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值