当前位置:编程学习 > wap >>

按键事件的处理

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,