首页 > 编程知识 正文

惠普电脑的快捷刷新键,小米电脑快捷刷新键

时间:2023-05-03 05:52:20 阅读:214757 作者:393

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(); } } 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(); } } return false;}bool CCefBrowserEventHandler::OnKeyEvent(CefRefPtr<CefBrowser> browser, const CefKeyEvent& event, CefEventHandle os_event){ return false;}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。