第九章视图和视图架构PPT课件.pptVIP

  • 1
  • 0
  • 约9.19千字
  • 约 46页
  • 2017-07-08 发布于山西
  • 举报
第九章视图和视图架构PPT课件

创建视图 其他3个必须实现的重要虚函数是: ViewActivatedL()——当激活视图时,执行视图特定的操作(例如显示联系人细节)。 ViewDeactivated()——当禁用视图时,执行视图特定的操作(例如关闭数据库)。 ViewId()——返回这个视图的惟一ID。视图ID在视图的源文件中声明,如下所示: //常量 const TUid KUidViewEx={0x0257696A}; const TUid KUidListView={O; 创建视图 下一个步骤是在ViewConstructL()函数中定义视图的内容。在该示例应用程序的这第一个视图中(CListView),决定创建一个列表框。该列表框使用前面定义为CNamesListArray的类进行创建。下面的内容说明列表框的实现: // CListView CListView:: ~CListView ( ) { iEikonEnv- EikAppUi()- DeregisterView(*this); delete iListBox; } 创建视图 void CListView::ViewConstructL() { iListBox=new(ELeave)CViewExTextListBox(this); iListBox-ConstructL(NULL); CNamesListArray*array=new(ELeave)CNamesListArray; array-ConstructL(); iListBox-Model()-SetItemTextArray(array); iListBox-Model()- SetOwnershipType(ELbmOwnsItemArray); SetRect(iEikonEnv-EikAppUi()-ClientRect()); iListBox-SetRect(iEikonEnv-EikAppUi()- ClientRect()); iListBox-SetCurrentItemIndex(3); } 创建视图 void CListView::ViewActivatedL(const TVwsViewId /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8 /*aCustomMessage*/) { iEikonEnv-AddDialogLikeControlToStackL(iListBox); iListBox-ActivateL(); iListBox-MakeVisible(ETrue); iListBox-DrawNow(); } 创建视图 void CListView::ViewDeactivated() { iListBox-MakeVisible(EFalse); iEikonEnv-RemoveFromStack(iListBox); MakeVisible(EFalse); } TVwsViewId CListView::Viewid () const { TVwsViewId KListViewId(KUidViewEx, KUidListView ); return KListViewId; } 创建视图 void CListView::ItemSelected(TListItem aItem) { TVwsViewId KCustomViewId(KUidViewEx, KUidCustomView ); TPckgBufTListItem buffer(aItem); iEikonEnv-EikAppUi()-ActivateViewL(KCustomViewId, KUidCustomView,buffer); } 这完成了第一个视图的创建。下一个步骤是用视图服务器进行注册。 注册视图 用视图服务器注册视图的目的是确保应用程序(和其他应用程序)可以在任何时候使用它。 为了启用注册视图,需要在应用程序的app UI类的ConstructL()函数内调用特定的视图注册函数(在CEikAppUi中实现)。 在下面显示的示例中,应用程序UI类CViewExAppUi直接派生于CEikAppUi,并且具有指向CListView类的指针作为数据成员: 注册视图 void CViewExAppUi:: ConstructL ( ) { BaseConstructL (); iListView = new (ELeave) CLis

文档评论(0)

1亿VIP精品文档

相关文档