现在很多高分屏在笔记本和家用市场逐步扩大,普通应用大小在一个 2K 或者 4K 屏幕下就像一个便利签一样贴在屏幕上面,看着很小。于是操作系统提供了对分辨率进行缩放的功能,比如我可以设置当前分辨率放大到 125%,这样就可以让字体或者窗口看着更大一些。同样基于 CEF 制作的客户端程序也会随之放大到 125%,但是内嵌的网页呢?当然也需要根据系统设置放大缩小,CEF 给我们提供了 SetZoomLevel 方法让我们来设置页面的缩放比例。

同样,我们还是用 CEF 官方给出的 cefclient 举例,cefclient 提供了 ZoomLevel 的修改示例,在程序菜单中选择 Tests->Zoom In 页面就会放大,跟进代码我们可以看到。

实际是调用了通过 browser 获取到的 host 中的 SetZoomLevel 方法。

void ModifyZoom(CefRefPtr browser, double delta) {

if (!CefCurrentlyOn(TID_UI)) {

// Execute on the UI thread.

CefPostTask(TID_UI, base::Bind(&ModifyZoom, browser, delta));

return;

}

browser->GetHost()->SetZoomLevel(browser->GetHost()->GetZoomLevel() + delta);

}

缩放的维度在 cefclient 中是 0.5 一个维度,这个计算的差值可以参考 cef 社区中的讨论:https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11491,当你想根据系统的缩放比例自动设置页面的缩放大小时,你要做的有以下几个步骤。

获取当前系统的缩放比例

根据缩放比例计算出实际应用到 CEF 的缩放数值

调用 SetZoomLevel 方法设置缩放比例

另外还要考虑一个时机的问题,我实测在 AfterCreated 中去设置是不生效的,这个阶段比较早,在 LoadEnd 中去设置是生效的,但是这个位置又比较晚,所以根据你自己项目的情况来决定哪里去设置这个缩放比例吧。

相关

cef修改html,CEF 设置页面缩放级别相关推荐

  1. CSS 设置页面缩放

    为了设置页面缩放,可以使用以下 CSS 属性: body {zoom: 80%; /* 缩放比例 */ } 或者使用以下 CSS 属性: body {transform: scale(0.8); /* ...

  2. echarts 与 百度地图bmap结合系列: 如何设置地图缩放级别和监听缩放事件

    简单的demo: // ehcarts 的实例对象 this.myChart = echarts.init(el)// ehcarts加载完成事件 this.myChart.on('finished' ...

  3. ViewPager设置页面缩放

    在安卓开发中使用到ViewPager的地方特别的多,我们需要根据不同的需求设置ViewPager显示的方式.如下面的Viewpager如何实现呢? <android.support.v4.vie ...

  4. css怎么设置页面缩放最小宽度

    html, body { min-width: 1500px;} @media only screen and (min-width: 1500px) {html, body { min-width: ...

  5. html5ie11缩放,如何设置缩放级别Internet Explorer 9 - Browsers | Microsoft Docs

    如何在更高版本中设置Internet Explorer 9缩放级别 04/21/2020 本文内容 重要 2022 Internet Explorer 11 桌面应用程序将停用,2022 年 6 月 ...

  6. OpenLayers中地图缩放级别的设置方法

    一.概述 在OpenLayers中,地图必须具有一个缩放级别的范围,缩放级别可以用比例尺(scale)或者分辨率(resolution)表示. 比例尺--屏幕上1米代表多少地图坐标单位:分辨率--屏幕 ...

  7. div滚动条怎么设置_【20201123】做个用户管理系统(7)——个人资料修改页面、用户头像设置页面的模板的制作...

    1. 介绍 1.1 介绍 今天福哥会带着大家完成个人资料修改页面和用户头像设置页面的模板的设计.个人资料里的项目比较多一些,这里面的项目在数据库里的没有对应的字段用来保存数据,我们今后会一起不上来.用 ...

  8. BMap 设置地图类型、缩放平移控件及缩放级别

    // 创建百度地图对象 var map = new BMap.Map("container2"); 地图类型控件 map.addControl(new BMap.MapTypeCo ...

  9. 金蝶云星空html5的网页主界面如何修改,金蝶云苍穹如何设置页面插件?

    注册方式 注册JAVA插件 注册JavaScript插件 实现方式 Java实现方式 实现步骤 新建插件类 package kd.bos.form.plugin; import java.math.B ...

最新文章

  1. Spark SQL 加载数据
  2. 黑马程序员顺义校区php_黑马程序员:从PHP零基础到月薪11K为何送锦旗给班主任?...
  3. 性能优化篇(3):避免空的图片src
  4. STM32工作笔记0091---ADC模数转换实验-M3
  5. 易语言短信接口_易语言调用腾讯云发送短信例子源码
  6. 初识Tracepro及基本操作说明
  7. 苹果电脑硬盘数据丢失后如何恢复?
  8. WinCC数据报表控件
  9. 怎么创建网站?创建网站流程分享
  10. Blob和File对象API与兼容性问题
  11. JAVA解题【We Are A Team】
  12. 苹果也被撕下遮羞布,iPhone14后继乏力,靠十三香维持销量
  13. buff系统 游戏中_arpg游戏的技能系统和buff系统的一种实现
  14. 安装了向日葵或TeamViewer导致系统亮度无法调节
  15. 微信营销分析之最有效的微信推广技巧
  16. xmapp无法启动Apache、Tomcat无法启动问题解决
  17. Python数据可视化-Matplotlib线性图(折线图等) 代码教学 Part 1
  18. [转载]使用Java生成带有下划线字体的文字
  19. 极品飞车服务器维修好久,极品飞车无限狂飙被封锁多久能解 | 手游网游页游攻略大全...
  20. p12解析流程_解析p12格式的程序(提取公钥和私钥)

热门文章

  1. 单反相机的传奇—佳能单反50年辉煌之路(连载六)
  2. 优化代码 如何去除停顿词
  3. adb pull安装的apk
  4. linux windows 格式化一块大于2 TiB硬盘
  5. php taglib.php,thinkphp5 taglib自定义标签教程
  6. java体温_java实现体温单实例-eclipse-java工程
  7. Java乐谱_如何在java中创建一个简单但结构良好的乐谱表(乐谱)?
  8. ListView根据字母排列——仿照微信联系人
  9. 小米黑苹果安装资料收集
  10. 浅析电力大数据安全现状及防护思路