CEF 添加F5刷新快捷键

Keyboardcodes:https://www.androidos.net.cn/android/4.3_r1/xref/external/webkit/Source/WebCore/platform/chromium/KeyboardCodes.h

1.首先要让我们自己的CefClient这个类公有继承CefKeyboardHandler

   

2.添加键盘事件构造函数

virtual CefRefPtr<CefKeyboardHandler> GetKeyboardHandler() OVERRIDE{return this;}

 

3.然后重写父类的OnPreKeyEvent和OnKeyEvent两个方法

在.h文件中添加函数声名

virtual bool OnPreKeyEvent(CefRefPtr<CefBrowser> browser,const CefKeyEvent& event,CefEventHandle os_event,bool* is_keyboard_shortcut) ;virtual bool OnKeyEvent(CefRefPtr<CefBrowser> browser,const CefKeyEvent& event,CefEventHandle os_event) ;

在.cpp中重写函数

F5和小写t的ASCLL码都是116,如果不做处理,按F5和t都能实现刷新功能,这是我们不想看到的。

1.通过调试时发现,按F5的时候event的type是KEYEVENT_RAWKEYDOWN,windows_key_code 是116;

2.按键盘t的时候OnPreKeyEvent会响应两次,第一次event的type是KEYEVENT_RAWKEYDOWN,windows_key_code是84(大写T的ASCII码是84),第二次event的type是KEYEVENT_CHAR,windows_key_code是116(小写t的ASCII码是116,因为没有判断按键类型导致F5和小写t同时都能刷新),因此通过event中的type判断一下,实现完美的刷新功能,在此感谢一下博友@uuuuY。

调试过程:

1.按F5

2.按键盘“T”

第一次响应

第二次响应

 

方法一、

bool CCefBrowserEventHandler::OnPreKeyEvent(CefRefPtr<CefBrowser> browser,const CefKeyEvent& event,CefEventHandle os_event,bool* is_keyboard_shortcut)
{if (event.type != KEYEVENT_CHAR){if (event.windows_key_code == VK_F5)//F5刷新
        {browser->Reload();
//browser->ReloadIgnoreCache();//重新加载当前页面,忽略任何缓存的数据}}
return false; }bool CCefBrowserEventHandler::OnKeyEvent(CefRefPtr<CefBrowser> browser,const CefKeyEvent& event,CefEventHandle os_event) {return false; }

方法二、

bool CCefBrowserEventHandler::OnPreKeyEvent(CefRefPtr<CefBrowser> browser,const CefKeyEvent& event,CefEventHandle os_event,bool* is_keyboard_shortcut)
{if (event.type == KEYEVENT_RAWKEYDOWN){if (event.windows_key_code == VK_F5)//F5刷新
        {browser->Reload();//browser->ReloadIgnoreCache();//重新加载当前页面,忽略任何缓存的数据。
        }}return false;
}bool CCefBrowserEventHandler::OnKeyEvent(CefRefPtr<CefBrowser> browser,const CefKeyEvent& event,CefEventHandle os_event)
{return false;
}

 

转载于:https://www.cnblogs.com/chechen/p/10100853.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 离散数据时间序列图_每个人都学的会的数据分析

数据分析已经成为数据时代各行各业突破各自行业发展瓶颈的最有效手段&#xff0c;无论是公司职员还是个体商户或大公司管理者&#xff0c;都需要有数据分析的能力。很多人认为数据分析能力就是对数据进行描述和做出漂亮的统计图形的能力&#xff0c;这是狭隘的理解。数据分析能…

java学习(114):Calendar类方法before

import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; //员工信息类 //date类 public class test50 {private String name;private String sex;private Date birth;public void showme(){System.out.println(this.getName());System.out.p…

notion函数_Notion使用指南 | Database篇

注&#xff1a;本篇文章为「侦探学园」&#xff08;BestDet&#xff09;专栏「学习利器锻造铺」中的稿件&#xff0c;首发于「侦探学园」。上篇文章给大家介绍了Notion的一些基本内容&#xff0c;但对于小白来说&#xff0c;上手还是有一定难度的。简单回顾一下上一篇文章的内容…

java学习(115):math方法

//math import java.util.Scanner; public class test55 {public static void main(String[] args){Scanner innew Scanner(System.in);System.out.println("请输入一个数字&#xff0c;求出他的绝对值");System.out.println("绝对值为"Math.abs(in.nextIn…

zemax模拟ld_Zemax光学设计实例(83)在非序列模式下LD阵列的光束整形

导论&#xff1a;半导体激光器(Laser Diode&#xff0c;LD)是很常用的激光器件&#xff0c;普遍应用在光通信、激光泵浦等领域。阵列LD通常因为管芯空间分布的原因导致光束质量较差&#xff0c;需要光束整形以后才能使用。本文以LD bar条为例&#xff0c;介绍在非序列模式下对L…

玩转oracle 11g(13):命令学习1

1建表&#xff0c;建个学生表&#xff0c;包含id&#xff0c;学号&#xff0c;性别&#xff0c;姓名&#xff0c;年龄&#xff0c;电话号码&#xff0c;奖学金 create table Student ( id varchar(20) primary key not null,--学生的id为唯一主键 xh number(4), --学号 se…

Vagrant 构建 Linux 开发环境

Vagrant 是一个简单易用的部署工具&#xff0c;用英文说应该是 Orchestration Tool 。它能帮助开发人员迅速的构建一个开发环境&#xff0c;帮助测试人员构建测试环境, Vagrant 基于 Ruby 开发&#xff0c;使用开源 VirtualBox 作为虚拟化支持&#xff0c;可以轻松的跨平台部署…

我的世界javamod怎么装_装暖气片,10个有8个人都想知道的这点事儿!

话说&#xff0c;以前北方集中供暖施工&#xff0c;住户可是啥都不带操心的&#xff0c;毕竟...啥时候装&#xff0c;怎么装&#xff0c;装在哪儿&#xff0c;啥时间打压试水&#xff0c;啥时间开、关&#xff0c;公家都给安排妥妥地&#xff0c;反正家连家&#xff0c;户连户的…

玩转oracle 11g(14):命令学习2

6继续玩&#xff0c;改变查询结果列名 select name as xm,birthday as workday from student;--修改列名name为xm&#xff0c;birthday为workday select * from student; 7 select xh||sex from student--将选择的字段竖行排列 8 select name,sal, case when sal<10000 t…

玩转oracle 11g(15):命令学习3

11插入数据 INSERT INTO student VALUES (A007, null,女, 小华, 24-7月-15, 27,17891345129,32000,工程部); select * from student where xh is null;--查找某一项值为空 12 select coalesce(XH,0) from student--将空值转换为实际值 13按指定方式排序 select name,depo,sa…

gdal 压缩tif_Python | GDAL处理影像

GDAL栅格数据处理栅格数据介绍栅格数据读取读取部分数据集坐标变换重采样什么是栅格数据基本上是一个大的二维或三维数组没有独立的几何对象&#xff0c;只有像素的集合二维&#xff1a;黑白图片三维&#xff1a;彩色/假彩色&#xff0c;多光谱/高光谱可以存储几乎任何类型的数…

玩转oracle 11g(16):命令学习4

16 create view V as select name|| ||sal as data from student --建立一个视图 select * from V--查询这个视图 17处理数据空值 select xh from student order by 1 desc—空值排列 18 select xh from student order by 1 desc nulls last--将空值置于最后排序 19 sel…

rmi远程代码执行漏洞_WebSphere 远程代码执行漏洞浅析(CVE20204450)

作者&#xff1a;beijixiong404 文章来源&#xff1a;先知社区漏洞简介WebSphere是IBM的软件平台&#xff0c;它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施&#xff0c;如服务器、服务和工具。2020…

Visual Studio最好用的快捷键(你最喜欢哪个)

每次在网上搜关于VS有哪些常用快捷键的时候&#xff0c;出来的永远是一串长的不能再长的列表&#xff0c;完全没体现出“常用”二字&#xff0c;每次看完前面几个就看不下去了&#xff0c;相信大家都 有这种感觉。其实我们平时用的真的只有很少的一部分&#xff0c;借用一句“二…

玩转oracle 11g(17):命令学习5

21建立班级表 CREATE TABLE class( classId NUMBER(2), cName VARCHAR2(40) ); insert into class values(001,计算机科学与技术); insert into class values(002,计算机科学与技术); insert into class values(003,计算机科学与技术); insert into class values…

版是什么_晴天保保超越版好不好,有什么升级?

(图片来源&#xff1a;Pixabay)首发 | 公众号「 吐逗保 」文 | 逗逗酱(,,&#xff65;∀&#xff65;)&#xff89;゛Hello&#xff0c;大噶好哇~给孩子买重疾险&#xff0c;逗逗酱一直以来推荐给大家最多的就是“晴天保保”、“妈咪保贝”或“大黄蜂系列少儿重疾险”。兼顾了定…

三种常见字符编码简介:ASCII、Unicode和UTF-8

什么是字符编码&#xff1f; 计算机只能处理数字&#xff0c;如果要处理文本&#xff0c;就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特&#xff08;bit&#xff09;作为一个字节&#xff08;byte&#xff09;&#xff0c;所以&#xff0c;一个字节能表…

贝叶斯软件genle教程_一文读懂蒙特卡罗方法和应用贝叶斯推理

贝叶斯方法与推论&#xff0c;本文应作为我的教程的背景&#xff0c;该教程使用(Py)Stan进行轻松的的应用贝叶斯推理&#xff0c;以及使用r-INLA进行(近似)贝叶斯回归的介绍。在本文中&#xff0c;我将提供有关贝叶斯推理和蒙特卡洛方法的非常简短&#xff0c;自成体系的介绍&a…

看动画轻松理解时间复杂度(一)

算法&#xff08;Algorithm&#xff09;是指用来操作数据、解决程序问题的一组方法。对于同一个问题&#xff0c;使用不同的算法&#xff0c;也许最终得到的结果是一样的&#xff0c;比如排序就有前面的十大经典排序和几种奇葩排序&#xff0c;虽然结果相同&#xff0c;但在过程…

win10切第二屏幕_Win10特有的31个快捷键,装逼利器,赶快收藏吧!学习电脑知识...

很多快捷键不同版本系统基本相同的&#xff0c;不过&#xff0c;今天推送的这篇更多偏向于win10&#xff0c;因为win10将来必定会形成主流&#xff0c;所以还是值得学习。【WinX】 打开简易版开始菜单。【Wini】 打开设置面板。【WinL】 快速锁屏【WinE】 启动资源管理器&#…