问题:
在Firebreath工程,捕获方向键。比如:
在插件类里面注册KeyDownEvent事件;事件处理:
bool XXX::onKeyDown(FB::KeyDownEvent *evt,FB::PluginWindow*win) {
if (win == NULL) {
return false;
}
FB::FBKeyCode code = evt->m_key_code;
if (code == FB::FBKEY_LEFT) {
...;
} else if (code == FB::FBKEY_RIGHT) {
...;
}
return false;
}
在非IE浏览器下都可以捕获的,IE10下也可以。唯独IE8下不下。不过ie8现在是主流,不通过是不行的。
google了许久,是Firebreath里面ActiveXCore的一个小问题,需要在FBControl class (\src\activexcore\fbcontrol.h)添加如下代码:
STDMETHOD(TranslateAccelerator)(LPMSG lpmsg){ return S_FALSE; }
重新编译,就可以了。
参考:
http://jira.firebreath.org/browse/FIREBREATH-185
JS也有类似的问题,不过应该和Firebreath项目(插件)没有直接的关系:
http://stackoverflow.com/questions/2217553/detecting-arrow-key-press-in-ie-via-javascript-jquery