看看想想记记
« »
July 11, 2008Symbian

461 views

手机按键的一些处理iCode iScanCode

symbian手机的按键处理还是有一些情况:

1.OfferKeyEventL( const TKeyEvent& aKeyEvent,
                                                 TEventCode aEventCode )
这个是截获键盘处理事件的方法,aKeyEvent提供iCode,iScanCode

TInt isCode = aKeyEvent.iScanCode;
  TInt keyCode = aKeyEvent.iCode;

TEventCode 提供的处理按键的类型:EEventKey,EEventKeyUp,EEventKeyDown
TKeyResponse CAknExListSettingContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
{
if ( aType != EEventKey ) // aType的值可以是EEventKey,EEventKeyUp,EEventKeyDown,一般事件不需要处理这些,因为EEventKeyDown都是游戏里面用到,比方说按下去不动发射什么。。。
{
return EKeyWasNotConsumed;
}
TChar charCode(aKeyEvent.iCode);switch ( charCode ) // The code of key event is...
{
case EKeyLeftArrow: // Left key. 对照表在epoc32\include\E32KEYS.H ,carbide里面可以找的到
case EKeyRightArrow: // Right Key.
// 相关处理
break;
default:
{
break;
}
}
return EKeyWasConsumed;
}
d
——————–分隔线—————————
标题: 带完整键盘的S60第三版设备上的按键映射
KIS000351
设备, 软件 版本: S60 3rd Edition
说明:
在一些S60第三版手机上有完整的键盘,其中一些键值只有通过FEP模式下编辑框才能获得
创建日期: July 7, 2006
详细描述:
在Nokia E61以及E70等带全键盘的机器上运行的程序时,如果要捕捉CCoeControl派生类下的按键事件时,在FEP模式下的编辑框中是无法获取同样键值的(通过TKeyEvent::iCode)。
这是因为QWERTY键盘的映射是依赖于当前的语言和输入模式的。例如,在Nokia E61上,CCoeControl派生类在数字键盘被按下时总是获得1,2,3。。。。而只有在FEP模式下的编辑框中(如CEikEdwin)它才能获取字母键”r”,”t”,。。。等。
注意scan codes(TKeyEvent::iScanCode)是不会受当前语言或输入模式影响的。
案例重现:
解决方案:
应用程序在处理文本输入时,应该使用表示准的Avkon编辑框控件。

————————————————–分隔线————————-

iScanCode保存的是键被按下或弹起的值,iCode保存的是一次完整按键事件对应的值.

来自http://discussion.forum.nokia.com/forum/showthread.php?p=434118不解何意

日志信息 »

该日志于2008-07-11 12:20由 J.et wong 发表在Symbian分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

相关日志 »

  • No Related Post

没有评论

发表评论 »

返回顶部

Switch to our mobile site