zoukankan      html  css  js  c++  java
  • 面板的练习

    面板的练习

    s60 的面板包括:标题面板(CAknTitlePane),情景面板(CAknContextPane),及导航面板(CAknNavigationControlContainer)

    AppUi 及 AknView 提供一个 StatusPane() 的方法可以得到 CEikStatusPane 的指针,然后通过 CEikStatusPane 的 ControlL 可以

    得到标题面板、情景面板、导航面板,如

    CEikStatusPane sp = StatusPane();
    CAknTitlePane* aTitle = static_cast<CAknTitlePane*>(sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle)));
    CAknContextPane* aContext = static_cast<CAknContextPane*>(sp->ConstrolL(TUid::Uid(EEikStatusPaneUidContext)));
    CAknNavigationControlContrainer* iNavi = static_cast<CAknNavigationControlContrainer*>(sp->ControlL(TUid::Uid(EEikStaticPaneUidNavi)));

    标题面板及情景面板是单一的控件,而 CAknNavigationControlContrainer 是复合控件,复合控件可以包括标签组及标签还有图像

    对于单一控件包含文本或图片的代码如下:

    iStatusPane = StatusPane();
    _LIT(Kpic,"\\system\\apps\\MULTIVIEW\\BITMAP.MBM");
    CAknTitlePane* aTitle = static_cast<CAknTitlePane*>
    (iStatusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle)));
    aTitle->SetTextL(_L("hello"));
    // 上面是标题面板一个字符串
    CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(Kpic,EMbmBitmapS1);
    CleanupStack::PushL(bitmap);
    aTitle->SetPicture(bitmap);
    CleanupStack::PopAndDestroy();
    aTitle->SetPicture(Kpic,EMbmBitmapS2);
    aTitle->SetPictureFromFileL(Kpic,EMbmBitmapS2);
    这里有两种方式,一种是通过 CFbsBitmap ,另一种是直接通过 mbm 文件

    _LIT(Kpic,"\\system\\apps\\MULTIVIEW\\BITMAP.MBM");
    CAknContextPane* context = static_cast<CAknContextPane*>
    (iStatusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext)));
    CFbsBitmap* bmp = iEikonEnv->CreateBitmapL(Kpic,EMbmBitmapS3);
    CleanupStack::PushL(bmp);
    context->SetPicture(bmp);
    CleanupStack::Pop();
    context->SetPictureFromFileL(Kpic,EMbmBitmapS3);
    这里有两种方式,一种是通过 CFbsBitmap ,另一种是直接通过 mbm 文件

    对于导航面板,可以通过 CAknNavigationDecorator* 来创建标签组或标签

    TResourceReader aReader;
    iCoeEnv->CreateResourceReaderLC(aReader,R_MY_PANE);
    CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
    iNavi = static_cast<CAknNavigationControlContainer*>(sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi)));
    //iNavi->ConstructFromResourceL(aReader);
    CleanupStack::PopAndDestroy();
    iCoeEnv->CreateResourceReaderLC(aReader,R_MY_TAB);
    this->iDecorator = iNavi->CreateTabGroupL(aReader);
    //this->iDecorator = iNavi->CreateNavigationLabelL(_L("label1"));
    CleanupStack::PopAndDestroy();
    iNavi->PushL(*iDecorator);
     

    其中试了试在 ConstructL 函数中创建一个 CFbsBitmap 对像

    CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(Kbmp,EMbmNavitestS1);

    程序运行这到里出错,而代码没有错,可能是 iEikonEnv 这时还不能用

    显示出音量的图标来

    this->iDecorator = iNavi->CreateVolumeIndicatorL(R_AVKON_NAVI_PANE_VOLUME_INDICATOR);
    iNavi->PushL(*iDecorator);
     



    安平2009@原创
    qi_jianzhou@126.com

  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/zziss/p/1737397.html
Copyright © 2011-2022 走看看