作者:隗来 文章来源:本站原创 点击数: 更新时间:2009-2-20
今天通过调试一个BUG,用Carbide C++ 1.3的单步调试功能对我经常使用的CEikEdwin控件进行了一下检测。我们知道,CEikEdwin控件有个OfferKeyEventL函数,这个函数的原型是
IMPORT_C TKeyResponse CEikEdwin::OfferKeyEventL ( const TKeyEvent & aKeyEvent,
TEventCode aType
)
这个函数是相应键盘按键的,我们在没有真机环境下,只能依靠模拟器了。于是在调试BUG过程中,有个BUG就是和这个有关系。OfferKeyEventL函数内的两个参数 aKeyEventL和aType 具体作用可以去查SDK。
通过Carbide C++Debug调试知道,在我们对模拟器内的CEikEdwin控件进行输入时,是分好多状况的。
1,当我们使用PC键盘的字母区的键模拟手机按键时。注意是字母区 ,按一次键,OfferKeyEventL函数会被执行三次,但三次的aType参数是不一样的,他们依次是EEventKeyDown ,EEventKey,EEventUp
2.当我们使用PC键盘的小键盘区(也就是数字键盘区),按一次键,OfferKeyEventL函数会被执行4次,四次的aType参数是不一样的,他们依次是 EEventKeyDown,EEventKey,EEventKeyUp,EEventKeyUp
3.在我们使用鼠标点击模拟器的键盘区时,按一次键,OfferKeyEventL函数会被执行3次,aType参数依次是