按键事件的处理
http://www.devdiv.net/bbs/thread-23630-1-1.html --------------------编程问答-------------------- 太懒了吧,问题描述呢? --------------------编程问答-------------------- ??这是什么 --------------------编程问答--------------------TKeyResponse CXModelSetContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )--------------------编程问答-------------------- 只贴出代码,说问题啊!注意节约他人的时间... --------------------编程问答-------------------- --------------------编程问答-------------------- 不是有汉字在那描述了?
{
if(aType != EEventKey)
{
return EKeyWasNotConsumed;
}
else if ( aKeyEvent.iCode == EKeyLeftArrow || aKeyEvent.iCode == EKeyRightArrow )
{
return EKeyWasConsumed;
}
if(iItemList)
{
if(iItemList->ListBox()->CurrentItemIndex() == 0 && aKeyEvent.iCode == EKeyDevice3 )//列表项
{
iItemList->StoreSettingsL();
ShowMultipleLineDialog1(iStartTime1,iEndTime1);
UpdateTheItemList(iView->ClientRect());//重绘
SetListBoxCurrentItem(iItemList->ListBox()->CurrentItemIndex());
return EKeyWasNotConsumed;
}
else if(iItemList->ListBox()->CurrentItemIndex() == 2 && aKeyEvent.iCode == EKeyDevice3 )
{
iItemList->StoreSettingsL();
ShowMultipleLineDialog2(iStartTime2,iEndTime2);
UpdateTheItemList(iView->ClientRect());
SetListBoxCurrentItem(iItemList->ListBox()->CurrentItemIndex());
return EKeyWasNotConsumed;
}
else if(iItemList->ListBox()->CurrentItemIndex() == 4 && aKeyEvent.iCode == EKeyDevice3 )
{
iItemList->StoreSettingsL();
ShowMultipleLineDialog3(iStartTime3,iEndTime3);
UpdateTheItemList(iView->ClientRect());
SetListBoxCurrentItem(iItemList->ListBox()->CurrentItemIndex());
return EKeyWasNotConsumed;
}
else if(iItemList->ListBox()->CurrentItemIndex() == 6 && aKeyEvent.iCode == EKeyDevice3 )
{
iItemList->StoreSettingsL();
ShowMultipleLineDialog4(iStartTime4,iEndTime4);
UpdateTheItemList(iView->ClientRect());
SetListBoxCurrentItem(iItemList->ListBox()->CurrentItemIndex());
return EKeyWasNotConsumed;
}
else
{
return iItemList->OfferKeyEventL(aKeyEvent,aType);
}
}
else
{
return EKeyWasNotConsumed;
}
}
复制代码在上面这段代码中每次一重绘焦点都跑都了第一项,各位高人帮忙给看看啊 void CXModelSetContainer::SetListBoxCurrentItem(TInt aRepeats)
{
TKeyEvent aKeyEvent;
TEventCode aType;
aKeyEvent.iCode = EKeyDownArrow;
aKeyEvent.iScanCode = 17;
aKeyEvent.iModifiers = 32768;
aKeyEvent.iRepeats = 0;
aType = EEventKeyDown;
for(TInt i = 0;i < aRepeats;i++)
{
iItemList->OfferKeyEventL( aKeyEvent, aType );
}
}
复制代码
1.这是CAknSettingItemList控件上的列表项
2.每次填充值只后需要重绘?重绘之后焦点不在当前项中,会自动跑到第一项中
请问这个问题如何解决?谢谢(代码在3楼) --------------------编程问答-------------------- 用 SetFocus() 方法看看。 --------------------编程问答-------------------- SetFocus() 是控制什么的?
补充:移动开发 , Symbian