Advertisement

在VS2010中使用CEF3 90.6.0版本将CEF3嵌入MFC窗口并通过JS调用

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:RAR


简介:
本教程详细介绍如何在Visual Studio 2010环境下,集成CEF3 90.6.0版至MFC应用程序,并通过JavaScript与C++进行交互。 本段落将详细介绍如何在Visual Studio 2010(VS2010)环境下使用Chromium Embedded Framework(CEF3)的90.6.0版本将其嵌入到MFC应用程序中,并实现JavaScript与C++代码之间的交互功能。 首先,需要安装并配置好VS2010。创建一个新的MFC项目时,请选择“文件”>“新建”>“项目”,在模板列表中找到并选择“MFC应用”。为该项目命名(例如命名为TestApp),并在指定位置保存。 接着是下载和解压缩CEF3的90.6.0版本库。此步骤完成后,将包含CEF运行时文件、头文件及库文件在内的解压内容放置在项目的某个子目录下,如“cef”。 接下来,在MFC项目中添加对这些CEF相关资源的引用。具体操作是在VS2010环境中右键点击项目名称选择属性设置,“配置属性”>“CC++”>“常规”选项卡下的附加包含目录里填入CEF头文件路径;同时在“链接器”>“输入”的附加依赖项中添加相应的库文件。 为了将CEF3嵌入到MFC窗口,需要创建并使用一个继承自`CEFRenderWidgetHost`的子类,并重写其必要方法。此外,在MFC对话框或视图类内加入这个定制化的CEFRenderWidgetHost实例作为成员变量,并在初始化阶段进行相应的设置。 值得注意的是,必须确保实现CEFMFC消息循环和常规MFC消息循环之间的同步机制。这通常涉及通过处理WM_PAINT、WM_SIZE等特定的消息来协调两者的工作流程,在自定义的`CEFRenderWidgetHost`子类中还需要响应来自CEF框架的各种回调事件以保持一致性。 关于JavaScript与C++间的交互,可以通过注册一个实现`CefMessageRouterBrowserSide::Handler`接口的对象,并在该对象内提供对应的处理函数。这些函数会在特定情况下被JavaScript代码调用(例如通过定制的URL方案)。此外,在MFC应用中定义相应的C++方法并使用`CefRegisterSchemeHandlerFactory`进行注册,从而允许从JavaScript端发起对这些功能的请求。 示例JavaScript代码如下: ```javascript chrome.webview.callFunction(myCppFunction, arg1, arg2, function(result) { console.log(C++函数返回结果: + result); }); ``` 在C++部分,则需要实现`myCppFunction`并确保正确处理和响应来自JavaScript的调用请求,最后通过`CefV8Context::Return`方法将执行的结果反馈给前端。 此外,在项目配置中还需设置CEF启动参数(如浏览器子进程路径、多线程消息循环等),以保证整个集成环境能够顺利运行。请注意根据实际需求调整这些参数值。 尽管本段落未提供具体源代码文件,但上述步骤应该足以指导开发者开始在VS2010+CEF3的90.6.0版本基础上创建一个MFC应用程序项目。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • VS2010使CEF3 90.6.0CEF3MFCJS
    优质
    本教程详细介绍如何在Visual Studio 2010环境下,集成CEF3 90.6.0版至MFC应用程序,并通过JavaScript与C++进行交互。 本段落将详细介绍如何在Visual Studio 2010(VS2010)环境下使用Chromium Embedded Framework(CEF3)的90.6.0版本将其嵌入到MFC应用程序中,并实现JavaScript与C++代码之间的交互功能。 首先,需要安装并配置好VS2010。创建一个新的MFC项目时,请选择“文件”>“新建”>“项目”,在模板列表中找到并选择“MFC应用”。为该项目命名(例如命名为TestApp),并在指定位置保存。 接着是下载和解压缩CEF3的90.6.0版本库。此步骤完成后,将包含CEF运行时文件、头文件及库文件在内的解压内容放置在项目的某个子目录下,如“cef”。 接下来,在MFC项目中添加对这些CEF相关资源的引用。具体操作是在VS2010环境中右键点击项目名称选择属性设置,“配置属性”>“CC++”>“常规”选项卡下的附加包含目录里填入CEF头文件路径;同时在“链接器”>“输入”的附加依赖项中添加相应的库文件。 为了将CEF3嵌入到MFC窗口,需要创建并使用一个继承自`CEFRenderWidgetHost`的子类,并重写其必要方法。此外,在MFC对话框或视图类内加入这个定制化的CEFRenderWidgetHost实例作为成员变量,并在初始化阶段进行相应的设置。 值得注意的是,必须确保实现CEFMFC消息循环和常规MFC消息循环之间的同步机制。这通常涉及通过处理WM_PAINT、WM_SIZE等特定的消息来协调两者的工作流程,在自定义的`CEFRenderWidgetHost`子类中还需要响应来自CEF框架的各种回调事件以保持一致性。 关于JavaScript与C++间的交互,可以通过注册一个实现`CefMessageRouterBrowserSide::Handler`接口的对象,并在该对象内提供对应的处理函数。这些函数会在特定情况下被JavaScript代码调用(例如通过定制的URL方案)。此外,在MFC应用中定义相应的C++方法并使用`CefRegisterSchemeHandlerFactory`进行注册,从而允许从JavaScript端发起对这些功能的请求。 示例JavaScript代码如下: ```javascript chrome.webview.callFunction(myCppFunction, arg1, arg2, function(result) { console.log(C++函数返回结果: + result); }); ``` 在C++部分,则需要实现`myCppFunction`并确保正确处理和响应来自JavaScript的调用请求,最后通过`CefV8Context::Return`方法将执行的结果反馈给前端。 此外,在项目配置中还需设置CEF启动参数(如浏览器子进程路径、多线程消息循环等),以保证整个集成环境能够顺利运行。请注意根据实际需求调整这些参数值。 尽管本段落未提供具体源代码文件,但上述步骤应该足以指导开发者开始在VS2010+CEF3的90.6.0版本基础上创建一个MFC应用程序项目。
  • VS2015_X64下CEF3集成到MFC
    优质
    本文详细介绍如何在Visual Studio 2015 X64环境下,将CEF3框架成功集成至MFC应用程序中的步骤与技巧。 将CEF(cef_binary_3.3440.1805.gbe070f9_windows64)嵌入MFC的示例完全基于官方代码进行修改,没有增加自定义类。具体内容如下: 1. 提供编译好的libcef_dll_wrapper.lib文件; 2. 将所有必要的包含文件和库文件(dll)集成到源文件中; 3. 在vs2015_x64环境下编译通过; 4. 支持在此基础上进行二次开发。 本人主要负责UI设计,如遇问题可联系。
  • MFCDLL
    优质
    本文介绍如何在基于Microsoft Foundation Classes (MFC)的应用程序中,将动态链接库(DLL)里的窗口控件无缝集成到主应用程序窗口中。通过详细步骤解析和代码示例,帮助开发者掌握这一技巧,增强软件模块化与复用性。 使用MFC编写一个静态的DLL,在DLL中插入一个对话框(dlg),通过new操作符创建一个类,并在该类中声明两个函数。主程序加载这个DLL并通过导出的函数将DLL中的窗口嵌入到主程序中。
  • MFCDLL里的
    优质
    本文介绍了如何在Microsoft Foundation Classes(MFC)框架下,将动态链接库(DLL)中的自定义窗口类安全有效地嵌入到主应用程序窗口的方法和步骤。 使用MFC编写一个静态的DLL,在DLL中插入一个对话框(dlg),并创建一个新的类,在该类中声明两个函数。主程序加载此DLL,并通过导出函数将DLL中的窗口嵌入到主程序中。
  • C#MATLABMATLAB图形FigureWindows Forms
    优质
    本教程介绍如何使用C#与MATLAB进行交互,并将MATLAB生成的图形无缝集成到Windows Forms应用程序界面中,实现跨平台的数据可视化。 需要提供以下内容: 1. 完整的C#代码。 2. 可运行的MATLAB代码文件(.m格式)。 3. 将MATLAB代码编译成dll的文件。 4. 原始处理图片一张。
  • CEF3-MFC示例
    优质
    CEF3-MFC示例项目旨在通过Microsoft Foundation Classes (MFC)框架整合 Chromium Embedded Framework 3(CEF3),为Windows平台开发者提供一个易于集成浏览器内核到桌面应用中的实例和指导。 CEF3-MFC实例,方便GitHub下载速度较慢的用户使用,是学习CEF3的好资源。
  • DUILIBCEF3以实现网页功能
    优质
    本项目介绍如何在DUIGUI库基础上集成CEF3框架,使应用程序具备加载和显示Web页面的能力,拓展了桌面应用的功能边界。 DUILIB 是 PC 下一个优秀的界面渲染库,CEF3 是谷歌开源的网页渲染程序。将两者结合使用可以实现客户端编程既能提供单击软件的便捷性,又具备浏览器丰富的网页渲染功能的技术方案。这种技术融合被许多公司用于开发PC端应用程序。例如微信、QQ和钉钉等产品都是采用这种方式进行开发的。相信从这段代码中(UNICODE编码)你能获得很多收获!
  • DUILIBCEF3以实现网页功能
    优质
    本文介绍了如何在DUITL框架中集成CEF3库,从而实现在桌面应用程序内加载和显示Web页面的功能。通过详细步骤指导开发者轻松实现这一技术整合。 DUILIB 是一个界面渲染库,而 CEF3 则是谷歌开源的网页渲染程序。将这两者结合起来使用,可以使得客户端编程既能够提供单机软件的操作便捷性,又具备浏览器丰富的网页渲染功能。这种技术方案被许多公司视为PC端应用开发的理想选择。
  • Duilib集成CEF3实现与JS的交互
    优质
    本文介绍了如何在Duilib框架下集成CEF3,并详细阐述了两者之间通信机制及JavaScript与C++代码互操作的方法。 duilib嵌入cef3,并与JS进行交互。