开发学院手机开发Symbian 开发 Symbian函数(HandleListBoxEventL\OfferKeyEventL... 阅读

Symbian函数(HandleListBoxEventL\OfferKeyEventL\HandleKeyEventL\HandleControlEventL)

 2010-07-04 15:45:00 来源:WEB开发网   
核心提示:Symbian函数(HandleListBoxEventLOfferKeyEventLHandleKeyEventLHandleControlEventL)一.HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent)其实就是使用了Ob

Symbian函数(HandleListBoxEventLOfferKeyEventLHandleKeyEventLHandleControlEventL)

一.HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent)

其实就是使用了Observer模式,其中ListBox的父控件是Observer。

假设iListBox的父控件为CMyContainer

1. CMyContainer要实现MEikListBoxObserver接口

2. iListBox构造完成后要调用

iListBox->SetListBoxObserver(this);

3. 当在iListBox中选中某个Item时,iListBox就会通过MEikListBoxObserver接口通知父控件。可以这样 处理这个通知:

void CMyContainer::HandleListBoxEventL(CEikListBox* /*aListBox*/,TListBoxEvent aEventType )

{

if (( aEventType == MEikListBoxObserver::EEventEnterKeyPressed)||

( aEventType== MEikListBoxObserver::EEventItemClicked ))

{

// 如果当前选中的是第二项

if(iListBox->CurrentItemIndex()==2)

{

// 则调用其它函数,或者

// 1. 切换到其它视图(如果你的视图继承自CAknView),或者

AppUi()->ActivateLocalViewL(TUid::Uid(ETheViewID));

// 2. 切换到其它视图(如果你的视图继承自CCoeControl)

// AppUi()->HandleCommandL(ECmdSwithToOtherView)

// 自己要AppUi类的HandleCommandL()中处理ECmdSwithToOtherView命令完成切换

}

}

}

二.virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);

这个函数专门用于处理键盘事件,如果对程序的交互和运行需要通过键盘控制,那么视图类就应该去实现这个方法。如果类实现这个方法,特别需要注意的是,若对象没有对键盘事件作出响应那么应该返回EKeyWasNotConsumed ,反之,若对象对该键盘事件做出了响应那么就要返回EKeyWasConsumed。当键盘事件发生时,控制框架调用每一个在控件栈中对象的 OfferKeyEventL()函数,直到他们中其中的一个可以处理这个键盘事件并返回EKeyWasConsumed。

参数:

const TKeyEvent& aKeyEvent :键盘事件。TKeyEvent 类描述了键盘事件的细节,他包括四个属性,分别是iCode, iModifiers, iRepeats, iScanCode

1 2 3  下一页

Tags:Symbian 函数 HandleListBoxEventL

编辑录入:coldstar [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接