免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 595 | 回复: 0
打印 上一主题 下一主题

Symbian学习笔记 13 之 多视图 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-29 12:30 |只看该作者 |倒序浏览

void CFirstFuckAppUi::ConstructL()

    {
    // Initialise app UI with standard value.
    BaseConstructL(CAknAppUi::EAknEnableSkin);
    CEikStatusPane *sp = StatusPane();
    iTitlePane = static_cast<CAknTitlePane*> (sp->ControlL( TUid::Uid(EEikStatusPaneUidTitle)));
    iNaviPane = static_cast<CAknNavigationControlContainer*> (sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi)));
    if(iNaviPane)
        {
        CAknNavigationDecorator *naviDecorator = iNaviPane->Top();
        if(naviDecorator)
            {
            iTabGroup = (CAknTabGroup*)naviDecorator->DecoratedControl();
            }
        }
    iActive = iTabGroup->ActiveTabIndex();
    iTabCount = iTabGroup->TabCount();
    iView = new (ELeave)CFirstFuckAppView;
    CleanupStack::PushL(iView);
    iView->ConstructL();
    CleanupStack::Pop();
    AddViewL( iView );
    iView1 = new (ELeave)CFirstFuckAppView1;
    CleanupStack::PushL(iView1);
    iView1->ConstructL();
    CleanupStack::Pop();
    AddViewL( iView1 );
    this->SetDefaultViewL( *iView );//设置默认为第一个视图
    }
void CFirstFuckAppUi::HandleCommandL(TInt aCommand)
    {
    switch (aCommand)
        {
        case EEikCmdExit:
        case EAknSoftkeyExit:
            Exit();
            break;

        case ECommandAlarm:
        case ECommandAbout:
        case EHelp:
        case EClose:
            iView->HandleCommandL( aCommand ); //传递给第一个视图的事件
            break;
        case ECommandStart:
        case ECommandStop:
            iView1->HandleCommandL( aCommand ); //传递给第二个视图的事件
            break;
        default:
            Panic(EFirstFuckUi);
            break;
        }
    }

TKeyResponse CFirstFuckAppUi::HandleKeyEventL( //捕获左右键并激活视图
    const TKeyEvent& aKeyEvent,TEventCode aType )
    {

    switch(aKeyEvent.iCode)
        {
        case EKeyLeftArrow:
            if( iActive > 0 )
                {
                iActive--;
                iTabGroup->SetActiveTabByIndex( iActive );
                this->ActivateLocalViewL( KViewId );
                }
            break;
        case EKeyRightArrow:
            if( (iActive+1) < iTabCount )
                {
                iActive++;
                iTabGroup->SetActiveTabByIndex( iActive );
                this->ActivateLocalViewL( KViewId1 ); 
                }
            break;
        default:
            return EKeyWasNotConsumed;
            break;
        }
   
    return EKeyWasNotConsumed;
    }


RESOURCE EIK_APP_INFO
    {
    status_pane = r_aknfirstfuck_status_pane;
    }

RESOURCE STATUS_PANE_APP_MODEL r_aknfirstfuck_status_pane
    {
    panes =
        {
        SPANE_PANE
            {
            id = EEikStatusPaneUidNavi;
            type = EAknCtNaviPane;
            resource = r_aknfirstfuck_navi_decorator;//导航
            }
        };
    }

RESOURCE NAVI_DECORATOR r_aknfirstfuck_navi_decorator
    {
    type = ENaviDecoratorControlTabGroup;
    control = TAB_GROUP
        {
        tab_width = EAknTabWidthWithTwoTabs;
        active = 0;
        tabs = 
            {
                TAB
                {
                id = EAknFirstFuckViewTab1;
                txt = r_string_firstfuck_tab_label1;
                },
                TAB
                {
                id = EAknFirstFuckViewTab2;
                txt = r_string_firstfuck_tab_label2;
                }
            };
        };
    }


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP