转载:https://www.cnblogs.com/guolixiucai/category/732385.html

在CEF3中,CefEnableHighDPISupport()这个接口函数在使用时一般不为人所注意,但是如果稍有不慎,会造成打开的网页不能填满窗口的问题。如果是需要flash插件才能运行的游戏。则会出现打开游戏后,调整窗口大小时,发现游戏界面的大小并未随之改变,而且游戏里的点击位置却与界面显示的位置也不对应。

是什么原因出现这种情况呢?先来看看CefEnableHighDPISupport()这个接口函数是干什么用的。cef_app.h中,如下所说。

1
2
3
4
5
6
7
///
// Call during process startup to enable High-DPI support on Windows 7 or newer.
// Older versions of Windows should be left DPI-unaware because they do not
// support DirectWrite and GDI fonts are kerned very badly.
///
/*--cef(capi_name=cef_enable_highdpi_support)--*/
void CefEnableHighDPISupport();

翻译:windows7或者更高版本系统中,在进程启动时设置High-DPI为启用状态。而低版本的windows系统对DirectWrite和DPI支持不好(设置这个不会有什么作用)。

什么DPI? 全称是dots per inch (DPI), 也就是每英寸的点数,在显示器上就是每英寸的像素个数,Window上一般默认是96 dpi 作为100% 的缩放比率, 但是要注意的是该值未必是真正的显示器物理值, 只是Windows里我们的一个参考标准。(详细参见:关于Windows高DPI的一些简单总结)。

如果设置了对高DPI的支持,但是打开网页时,没有设置相应的缩放比例,那么在win7以上版本里,很容易出现文章开头所说的问题。解决这个问题很简单,要么不要使用CefEnableHighDPISupport()这个接口函数,要么去设置网页的缩放比例。

设置网页的缩放大小使用SetZoomLevel(double zoomLevel)这个函数,如下所示:
1
2
3
4
5
6
7
8
///
// Change the zoom level to the specified value. Specify 0.0 to reset the
// zoom level. If called on the UI thread the change will be applied
// immediately. Otherwise, the change will be applied asynchronously on the
// UI thread.
///
/*--cef()--*/
virtual void SetZoomLevel(double zoomLevel) =0;

翻译:执行渲染之前,在UI线程中,使用这个函数重置缩放比例,可以立即生效。

转载于:https://www.cnblogs.com/coolwind168/p/11053937.html

CEF3开发者系列之CefEnableHighDPISupport详解相关推荐

  1. Docker系列07—Dockerfile 详解

    Docker系列07-Dockerfile 详解 1.认识Dockerfile 1.1 镜像的生成途径 基于容器制作  dockerfile,docker build 基于容器制作镜像,已经在上篇Do ...

  2. mongo 3.4分片集群系列之六:详解配置数据库

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  3. ftm模块linux驱动,飞思卡尔k系列_ftm模块详解.doc

    飞思卡尔k系列_ftm模块详解 1.5FTM模块1.5.1 FTM模块简介FTM模块是一个多功能定时器模块,主要功能有,PWM输出.输入捕捉.输出比较.定时中断.脉冲加减计数.脉冲周期脉宽测量.在K1 ...

  4. React Native按钮详解|Touchable系列组件使用详解

    转载自:http://www.devio.org/2017/01/10/React-Native按钮详解-Touchable系列组件使用详解/ 在做App开发过程中离不了的需要用户交互,说到交互,我们 ...

  5. android开发者选项打开方式,打开、关闭安卓手机的开发者选项的方法详解

    现在使用安卓手机的用户人群很多,大家都知道安卓手机中的"开发人员选项"吧,最近,有用户在问如何关闭或者打开开发者选项.那么小编今天就给大家带来一个打开.关闭安卓手机的开发者选项的方 ...

  6. Material Design系列之BottomNavigationView详解

    Material Design系列之BottomNavigationView详解 Material Design官方文档Bottom navigation的介绍 BottomNavigationVie ...

  7. React 源码系列 | React Context 详解

    目前来看 Context 是一个非常强大但是很多时候不会直接使用的 api.大多数项目不会直接使用 createContext 然后向下面传递数据,而是采用第三方库(react-redux). 想想项 ...

  8. 2016年最新苹果开发者账号注册流程详解(公司账号篇)

    随着苹果规定金融/理财类应用需要使用公司开发者账号上传,并进一步加大对此类问题的审核力度,公司开发者账号开始呈现出炙手可热之势! 不过,公司开发者账号的注册流程着实复杂--不仅要填写公司的D-U-N- ...

  9. 2016 年最新苹果开发者账号注册流程详解(个人账号篇)

    苹果宣布 Search Ads 重磅上线的同时,也向开发者传达了一个好消息:申请注册 Search Ads 即可获得 100 美元账户余额.虽然竞价广告目前仅限美国区,但此项福利却在中国区引发了一场规 ...

最新文章

  1. CentOS系统安装(上):图形/文本界面安装
  2. 手把手教你搭建Linux开发环境(VMware+Ubuntu)(四)——gcc编译器的安装和使用
  3. MyBatis-学习笔记10【10.JNDI扩展知识】
  4. strcpy,memcpy,memset函数实现
  5. 基于Spark机器学习和实时流计算的智能推荐系统
  6. python3 下载文件-使用Python 3从网上下载文件
  7. egret牧场小游戏遇到的坑
  8. 评价法(一):层次分析法的步骤和方法
  9. pip install xx 时遇到There was a problem confirming the ssl certificate…的解决办法
  10. 记录一次吃力的探索过程【Thinkphp搭建Mysql长连接并重用】
  11. Lombok 之 Log
  12. 程序员在赚钱游戏上的优势 | 赚钱游戏
  13. 电脑底部的任务栏跑左侧了怎么调 windows
  14. 华为和荣耀的关系:亲兄弟,各自为王
  15. 网络映射iscsi服务器,群晖iSCSI管理器连接网络硬盘详细介绍和配置使用说明
  16. 机器学习 06:SMO 算法
  17. [转]清华大学计算机考研经验谈
  18. 基于Spark的巨型矩阵分布式LU计算求逆【第一篇】
  19. pycharm插件 Eval Reset 安装方法
  20. 【庖丁解牛】从零实现FCOS(终):CenterSample的重要性

热门文章

  1. python实现 政府工作报告词云的生成(嵩天老师)
  2. 博主已开启评论精选什么意思_小红书怎么入驻怎么开店小红书如何入驻开店需要什么...
  3. Element-ui和Element-Plus的区别_Element2和Element3的区别
  4. Python开发亚马逊关键词获取工具
  5. Win7 bat批处理命令
  6. 捷联惯导基础知识解析之一(姿态表示方法基础知识)
  7. iir matlab 带通,基于Matlab的带通IIR数字滤波器设计与仿真
  8. JAVA毕设项目旧货网上交易系统(java+VUE+Mybatis+Maven+Mysql)
  9. Parsa‘s Humongous Tree(贪心+树形dp)
  10. CAM350 导出SMT坐标文件